尝试对浮点数列表求和时出现“ TypeError:'int'对象不可调用”错误

时间:2019-09-23 00:46:37

标签: python

for i in range(0, len(alist)):
    alist[i] = float(alist[i])
print(alist)

p = alist[-5:]
print(p)
#print(sum(p)) --- I am unsure why this is not working

1 个答案:

答案 0 :(得分:1)

根据your comment

  

我收到一个TypeError:'int'对象不是可调用错误

我认为发生的事情是您在代码中的某个地方创建了一个sum变量,如下所示:

sum = 1234        # This is bad.

alist = [ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 ]
p = alist[-5:]
print(type(sum))  # <class 'int'>
print(sum(p))

这将引发错误:

Traceback (most recent call last):
  File "test.py", line 7, in <module>
    print(sum(p))
TypeError: 'int' object is not callable

这是因为sum()built-in Python function,并且您应该从不命名变量和模块,使其与内置函数相同,因为这将重新定义它们。

因此,只需重命名sum变量,然后通过打印其sum来确认您正在使用的type是内置函数。

sum_of_something = 1234

alist = [ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 ]
p = alist[-5:]
print(type(sum))  # <class 'builtin_function_or_method'>
print(sum(p))     # 27.499999999999996