函数传递一个数字列表并返回每次迭代的数字平均值
问题描述:
我正在编写此函数,我似乎很接近。问题是即使我已经定义了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
答
您在循环做的第一件事是
y += i
在第一次迭代中,y是0但是我等于10,因此在做完“y + = i”之后,y等于10. 然后你做:
Avg=(y+i)/z
因为y等于10,(Y + I)等于20
这非常有意义!感谢您帮助初学者! –