Python- sum()只需要2个参数(给定1个)

时间:2015-10-29 10:09:48

标签: python python-2.7

numlist = [10,20,5,30]
print numlist
print sum(numlist)

TypeError: sum() takes exactly 2 arguments (1 given)

我正在尝试在列表中使用sum函数。 Python的2.7

内置函数语法 - sum(iteration[,start]),启动默认为0

或者尝试以下方法:

print sum(numlist[,0])

错误:语法无效

2 个答案:

答案 0 :(得分:5)

重新定义了 sum()功能。你是在某个地方做到的:

def sum(arg1, arg2):
    # ...

或使用导入将该名称添加到当前名称空间。

这就是你正在调用的函数,而不是内置函数。

如果您使用:

import __builtin__

print __builtin__.sum(numlist)

它会起作用。在翻译工作时,您只需删除内置的其他功能即可重新出现':

del sum
print sum(numlist)

在脚本中,找到def sum(...):定义并将其重命名为其他内容。

答案 1 :(得分:0)

您或您的某个导入重新定义了sum内置:

>>> def sum(a,b):
    pass

>>> numlist = [10,20,5,30]
>>> print sum(numlist)

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    print sum(numlist)
TypeError: sum() takes exactly 2 arguments (1 given)

通过在总和上调用del或在代码中重命名函数来修复它:

>>> del sum
>>> sum(numlist)
65