我被告知要撰寫一個函式來計算給定串列中數字的平均值。空陣列應回傳 0。這是我的代碼:
def find_average(numbers):
c = sum(numbers)
for number in numbers:
d = c / number
return d
pass
有人可以解釋為什么這不起作用嗎?
uj5u.com熱心網友回復:
回圈不是必需的for,因為您已經在使用sum(). 將所有元素相加后,您唯一需要做的就是將總和除以 中的條目數numbers:
def find_average(numbers):
if not numbers:
return 0
return sum(numbers) / len(numbers)
uj5u.com熱心網友回復:
def find_average(numbers):
c = sum(numbers)
if not numbers: # to avoid the division by zero
return 0
return c / len(numbers)
print(find_average([1, 2, 3]))
當你回傳它時,它會停止函式,所以你只除以第一個元素。要獲取串列中元素的數量,您可以使用關鍵字len.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478271.html
上一篇:用串列中的字串替換部分字串
下一篇:從給定資料集中洗掉多次出現的元素
