为了账号安全,请及时绑定邮箱和手机立即绑定

请问这道题像这样写为什么不对啊

def average(*args):

    sum=0

    if len(args)==0:

        return sum

    else:

        for i in args:

            sum+=i

        return sum/len(args)


print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)


正在回答

3 回答

sum = 0.0 

要不然都是int啊

0 回复 有任何疑惑可以回复我~
#1

qq_透明也褪色_0 提问者

非常感谢
2018-01-15 回复 有任何疑惑可以回复我~
#2

Super科技蓝 回复 qq_透明也褪色_0 提问者

共同学习
2018-01-15 回复 有任何疑惑可以回复我~

看一下3-8 python中的整数和浮点数


为什么要区分整数运算和浮点数运算呢?这是因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。

那整数的除法运算遇到除不尽的时候,结果难道不是浮点数吗?我们来试一下:

11 / 4    # ==> 2

令很多初学者惊讶的是,Python的整数除法,即使除不尽,结果仍然是整数,余数直接被扔掉。不过,Python提供了一个求余的运算 % 可以计算余数:

11 % 4    # ==> 3

如果我们要计算 11 / 4 的精确结果,按照“整数和浮点数混合运算的结果是浮点数”的法则,把两个数中的一个变成浮点数再运算就没问题了:

11.0 / 4    # ==> 2.75


所以,你的sum不是浮点型的话,平均值如果有小数,也会输出为整数

0 回复 有任何疑惑可以回复我~
#1

qq_透明也褪色_0 提问者

明白了,谢谢你
2018-01-15 回复 有任何疑惑可以回复我~

sum * 1.0

0 回复 有任何疑惑可以回复我~
#1

qq_透明也褪色_0 提问者

非常感谢
2018-01-15 回复 有任何疑惑可以回复我~
#2

Sunflower_0018 回复 qq_透明也褪色_0 提问者

没事 我也是刚学 有不会的可以互相交流
2018-01-15 回复 有任何疑惑可以回复我~
#3

qq_透明也褪色_0 提问者 回复 Sunflower_0018

嗯嗯 好的
2018-01-15 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

请问这道题像这样写为什么不对啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信