2017-10-06 20 views
0

我正在編寫此函數,我似乎很接近。問題是即使我已經定義了y = 0,當第一次循環迭代運行時,y被返回爲10.它似乎從列表中的第一個數字開始拉,因爲當我改變它時,i和y更改。函數傳遞一個數字列表並返回每次迭代的數字平均值

def Meanlist(x): 
    y = 0 
    z = 1 
    for i in x:   
     y += i 
     Avg=(y+i)/z 
     print('For Iteration', z, 'Average is', Avg) 
     print('For Iteration', z, 'i is', i) 
     print('For Iteration', z, 'y is', y) 
     z+=1 
L1 = [10, 56.7, 56, 89, 100, 99, 87.5, 34, 985, 10] 
Meanlist(L1) 

這是爲第一次迭代返回這些值。我在做什麼錯誤?其他一切似乎都與這個功能一起工作。

迭代1平均爲20.0 迭代1我是10 迭代1 y是10

回答

0

您在循環做的第一件事是

y += i

在第一次迭代中,y是0但是我等於10,因此在做完「y + = i」之後,y等於10. 然後你做:

Avg=(y+i)/z

因爲y等於10,(Y + I)等於20

+0

這非常有意義!感謝您幫助初學者! –

相關問題