sum(args)為何要*1.0
def average(*args):
? ? if args:
? ? ? ? return sum(args)/len(args)
? ? else:
? ? ? ? return 0.0
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)
為什么sum(args)不乘以1.0,最后輸出的結果就會是
0.0
1
2
乘以1.0輸出的結果就是正確的?
def average(*args):
? ? if args:
? ? ? ? return sum(args)/len(args)
? ? else:
? ? ? ? return 0.0
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)
為什么sum(args)不乘以1.0,最后輸出的結果就會是
0.0
1
2
乘以1.0輸出的結果就是正確的?
2017-02-13
舉報
2017-02-13
sum(args)和len(args)都是整型,如果不轉換成float,計算結果還是int,會影響結果的正確性。
2017-02-13
整型(int)的計算結構只能是整數,你想要結果是小數就要讓sum變成浮點型,乘1.0就是讓sum變成float型,因為sum(int)乘1.0(float)結構就變成了float型