我使用open(filename)
打开包含数字73,85,66,0和99的文件。
我将每个号码添加到名为values
的列表中。现在我想得到所有数字的平均值。我尝试使用名为sum
的变量对值求和,然后打印总和。
values = []
for i in values:
sum = sum + i
print sum:
此代码给出了以下错误:TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'
答案 0 :(得分:2)
您使用sum
作为变量名称,但尚未初始化。但是sum
是内置函数的名称,所以你不应该将它用作变量名,因为它可能导致这样的问题。 :)你的代码告诉Python将values
中的整数添加到函数中,所以它会抱怨。但这有效:
values = [1, 2, 3, 4]
total = 0
for i in values:
total = total + i
print total
<强>输出强>
10
FWIW,如果我们使用sum
而不是total
来存储当前累积的总和,上面的代码将起作用,因为它在循环开始之前被初始化。但这不是一个好主意,因为这意味着如果您以后需要它,您将无法访问正确的sum()
函数。此外,阅读代码的人有点困惑。
或者您可以使用sum()
函数,因为它旨在将可迭代的内容添加到一起:
print sum(values)
<强>输出强>
10
答案 1 :(得分:0)
当您拨打sum = sum + i
时,您还没有给sum
一个值。您不能将1添加到未定义的变量。
在代码块之前声明sum = 0
,它应该解决问题。
此外,在您的打印声明后不应该是冒号。这是一个错字,还是实际上在你的代码中?