我有这个简单的平均函数,当它运行测试数据时,会显示数据的长度,但是在计算实际平均值时,不会超出序列中的第一项。我需要帮助找到我在这里做错了什么。如果你这样做,请提前感谢您花时间回答。
def avg(seq):
total = 0
for i in seq:
total+=i
average = total/len(seq)
return (float(average))
test_data = (12,89,90)
print(len(test_data))
print(avg(test_data))
答案 0 :(得分:6)
这是错误的:
def avg(seq):
total = 0
for i in seq:
total+=i
average = total/len(seq)
return (float(average))
这是对的:
def avg(seq):
total = 0
for i in seq:
total += i
average = total / len(seq)
return average
或者,如果您尚未升级到3.x,
average = float(total) / len(seq)
答案 1 :(得分:1)
您可以考虑使用标准的python函数,
>>> seq = (12,89,90)
>>> sum(seq)
191
>>> float(sum(seq))/len(seq)
63.666666666666664
答案 2 :(得分:0)
当您在函数中返回时,它会完全退出该函数。将循环拉到函数外部,或者返回for
循环外的元组/列表。