为什么我用这个(python)代码得到“int不可调用”类型错误?
我在做项目欧拉的问题30,这是找到所有数字的总和,可以写成他们的数字的五次幂的总和。 (http://projecteuler.net/problem=30了解更多信息)为什么我用这个(python)代码得到“int不可调用”类型错误?
出于某种原因,我得到一个“int是不可调用的”类型错误,当我尝试运行我尝试的解决方案:
def problem30():
sum = 0
for n in xrange(20000):
if sum([((int(x))**5) for x in list(str(n))]) == n:
sum += n
sum
为什么会出现这样的错误,我该如何解决它?提前致谢。
您将变量命名为sum
,并试图将其作为内置函数同时使用。
重命名sum
标识符,就是要总和:
def problem30():
total = 0
for n in xrange(20000):
if sum(int(x) ** 5 for x in str(n)) == n:
total += n
return total
我已经简化你的表情也一点点;大部分括号和清单都是过剩的。
非常感谢。我无法相信我没有注意到这一点。 – Foxin 2013-02-22 21:25:39
@Foxin:容易犯的错误。你很快就会认识到异常,通常是相同类型的错误。 :-) – 2013-02-22 21:26:42
这是完全一样调用变量justData,然后尝试以下操作:
justData = 0
justData(parameterA, parameterB)
# Oops, tried to call a variable as though it wasn't data.
不要将其命名变量'sum',它可以混合起来使用功能'和()' – TerryA 2013-02-22 21:17:32
@Haidro这正是发生的事情。 – BlackVegetable 2013-02-22 21:17:55
哦,当然!我现在感觉很傻。谢谢您的帮助。 – Foxin 2013-02-22 21:26:47