請問這道題像這樣寫為什么不對啊
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
舉報
2018-01-15
sum = 0.0?
要不然都是int啊
2018-01-15
看一下3-8 python中的整數和浮點數
為什么要區分整數運算和浮點數運算呢?這是因為整數運算的結果永遠是精確的,而浮點數運算的結果不一定精確,因為計算機內存再大,也無法精確表示出無限循環小數,比如 0.1 換成二進制表示就是無限循環小數。
那整數的除法運算遇到除不盡的時候,結果難道不是浮點數嗎?我們來試一下:
11 / 4 ? ?# ==> 2
令很多初學者驚訝的是,Python的整數除法,即使除不盡,結果仍然是整數,余數直接被扔掉。不過,Python提供了一個求余的運算 % 可以計算余數:
11 % 4 ? ?# ==> 3
如果我們要計算 11 / 4 的精確結果,按照“整數和浮點數混合運算的結果是浮點數”的法則,把兩個數中的一個變成浮點數再運算就沒問題了:
11.0 / 4 ? ?# ==> 2.75
所以,你的sum不是浮點型的話,平均值如果有小數,也會輸出為整數
2018-01-15
sum * 1.0