赢得';在python中,不能超过第一项
我有一个简单的平均值函数,当它与测试数据一起运行时,将显示数据的长度,但在计算实际平均值时,不会超出序列中的第一项。我需要帮助来找出我做错了什么。如果您愿意,请提前感谢您抽出时间回答赢得';在python中,不能超过第一项,python,Python,我有一个简单的平均值函数,当它与测试数据一起运行时,将显示数据的长度,但在计算实际平均值时,不会超出序列中的第一项。我需要帮助来找出我做错了什么。如果您愿意,请提前感谢您抽出时间回答 def avg(seq): total = 0 for i in seq: total+=i average = total/len(seq) return (float(average)) test_data = (12,89,90) prin
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))
这是错误的:
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)
当您在函数中放置返回时,它将完全退出该函数。将循环拉到函数外部,或返回
for
循环外部的元组/列表。您可以考虑改用标准python函数
>>> seq = (12,89,90)
>>> sum(seq)
191
>>> float(sum(seq))/len(seq)
63.666666666666664
丹尼尔,我很感谢你的建议,但如果我在这里做什么,我想知道。因为我的代码产生了这种奇怪的输出。