【发布时间】:2012-06-26 06:28:29
【问题描述】:
我试图弄清楚为什么在范围上使用 sum 函数时会出错。
代码如下:
data1 = range(0, 1000, 3)
data2 = range(0, 1000, 5)
data3 = list(set(data1 + data2)) # makes new list without duplicates
total = sum(data3) # calculate sum of data3 list's elements
print total
这是错误:
line 8, in <module> total2 = sum(data3)
TypeError: 'int' object is not callable
我找到了这个错误的解释:
在 Python 中,“可调用”通常是一个函数。该消息意味着您将数字(一个>“int”)视为一个函数(一个“可调用”),所以Python不知道该做什么,所以它>停止。
我还读到 sum() 能够用于列表,所以我想知道这里出了什么问题?
我刚刚在 IDLE 模块中尝试过,效果很好。但是,它在 python 解释器中不起作用。有什么想法吗?
【问题讨论】:
-
这对我来说非常有效......你在调用函数之前命名了一个变量
sum吗? -
刚刚编辑过的原件。我正在使用 IDE。正如您所提到的,在 IDLE 中工作。 IDE 正在运行 Python 2.7。这很奇怪。
-
您说“它在 IEP 中不起作用”。什么是 IEP?
-
Python 的交互式编辑器。 code.google.com/p/iep
-
您实际上不需要将您的集合转换回列表...
sum()将处理任何数字序列。
标签: python sum python-2.7 callable