请问这道题像这样写为什么不对啊
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)
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)
2018-01-15
看一下3-8 python中的整数和浮点数
为什么要区分整数运算和浮点数运算呢?这是因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。
那整数的除法运算遇到除不尽的时候,结果难道不是浮点数吗?我们来试一下:
11 / 4 # ==> 2
令很多初学者惊讶的是,Python的整数除法,即使除不尽,结果仍然是整数,余数直接被扔掉。不过,Python提供了一个求余的运算 % 可以计算余数:
11 % 4 # ==> 3
如果我们要计算 11 / 4 的精确结果,按照“整数和浮点数混合运算的结果是浮点数”的法则,把两个数中的一个变成浮点数再运算就没问题了:
11.0 / 4 # ==> 2.75
所以,你的sum不是浮点型的话,平均值如果有小数,也会输出为整数
举报