我有这个奇怪的问题,我需要帮助。我有这个代码我希望在Spyder中运行,但我一直在收到错误说明
TypeError:' int'对象不可调用。
s ='abcdefgbobaaaaabob'
end = 3
bobs = 0
for i in range(len(s)):
finder = s[i:end]
if finder == 'bob':
bobs += 1
end += 1
print('Number of times bob occurs is: '+ str(bobs))
奇怪的是,当我在IDLE中运行相同的代码时,它工作正常,并提供我需要的结果。我甚至试过在pythontutor.com上运行代码,没有错误。
有人可以告诉为什么会发生这种情况!?
答案 0 :(得分:1)
当您有一个整数的对象时会发生此错误,但您的代码会尝试使用它,就好像它是一个函数一样。例如:
这里的第一个看起来不是问题,所以也许你不小心覆盖了你正在使用的一个功能?
>>> str(3)
'3'
>>> str = 17
>>> str(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
在Spyder中,您可以在变量资源管理器标签中进行检查,右键单击它并选择Remove
,或在Python控制台中键入(例如)del(str)
删除错误的作业。
答案 1 :(得分:1)
Spyder保存您之前创建的变量。您可以在“变量资源管理器”标签中检查这些创建的变量。
如果那里存在任何变量,并且您在任何python程序中都使用与函数相同的变量。根据变量资源管理器中存在的变量,它将引发错误“ int对象不可调用”或“'str'对象不可调用”。
解决方案:
只需在变量浏览器中右键单击即可删除此类变量
在控制台中输入del(variable_Name)。例如:del(len)或del len
请检查屏幕截图-spyder IDE:
答案 2 :(得分:0)
我也使用Spyder运行它,它运行良好。你在使用Python3吗?