Python';str';对象不可调用Python 2.7.3
我目前正在写一个交易游戏,用户连接到一个服务器,然后彼此进行交易并赚钱,等等。 但是当我尝试的时候Python';str';对象不可调用Python 2.7.3,python,string,callable,Python,String,Callable,我目前正在写一个交易游戏,用户连接到一个服务器,然后彼此进行交易并赚钱,等等。 但是当我尝试的时候 if(input.lower() == 'sell'): sMaterial = raw_input('Material: ') if(sMaterial.lower() == 'gold'): sAmount = int(input('Enter amount: ')) if(gold >= sAmount):
if(input.lower() == 'sell'):
sMaterial = raw_input('Material: ')
if(sMaterial.lower() == 'gold'):
sAmount = int(input('Enter amount: '))
if(gold >= sAmount):
mon = mon + (100 * sAmount)
else:
print 'You do not have enough', sMaterial
它抛出了错误
> sell
Material: gold
Traceback (most recent call last):
File "Test.py", line 119, in <module>
sAmount = int(input('Enter amount: '))
TypeError: 'str' object is not callable
>出售
材料:黄金
回溯(最近一次呼叫最后一次):
文件“Test.py”,第119行,在
sAmount=int(输入('输入金额:'))
TypeError:“str”对象不可调用
我正在使用Linux、Python 2.7.3版和Geany开发环境。
提前感谢。此行:
if(input.lower() == 'sell'):
告诉我您必须在某个点将名称input
绑定到字符串。所以当你打电话的时候
sAmount = int(input('Enter amount: '))
您试图将参数'Enter amount:'
传递给字符串input
,因此:TypeError:'str'对象不可调用
。因为看起来您使用的是Python 2,所以无论如何,您可能应该使用raw\u input
,但这是不重新绑定内置名称的另一个原因。这一行:
if(input.lower() == 'sell'):
告诉我您必须在某个点将名称input
绑定到字符串。所以当你打电话的时候
sAmount = int(input('Enter amount: '))
您试图将参数'Enter amount:'
传递给字符串input
,因此:TypeError:'str'对象不可调用
。因为看起来您正在使用Python2,所以无论如何,您可能应该使用raw\u input
,但这是不重新绑定内置名称的另一个原因。您应该这样做
sAmount = int(raw_input('Enter amount: '))
而不是
sAmount = int(input('Enter amount: '))
您可能也希望在其中的某个位置执行一些异常处理:)您应该这样做
sAmount = int(raw_input('Enter amount: '))
而不是
sAmount = int(input('Enter amount: '))
您可能还想在其中的某个地方执行一些异常处理:)您已经用一个包含一些数据的变量覆盖了
输入
函数。你在某处做了input=…
。(您可以在代码的第一行看到您正在执行的input.lower()
)解决方案是更改代码中执行此操作的部分。不要给变量指定与内置函数或类型相同的名称。您已经用一个包含一些数据的变量覆盖了input
函数。你在某处做了input=…
。(您可以在代码的第一行看到您正在执行的input.lower()
)解决方案是更改代码中执行此操作的部分。不要给变量起与内置函数或类型相同的名称。谢谢,这就解决了这个问题。我在这里也看到了其他帖子,他们帮了我的忙。对不起,我没有注意到。谢谢,这已经解决了。我在这里也看到了其他帖子,他们帮了我的忙。很抱歉,我没有注意到这一点。