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()
)解决方案是更改代码中执行此操作的部分。不要给变量起与内置函数或类型相同的名称。

谢谢,这就解决了这个问题。我在这里也看到了其他帖子,他们帮了我的忙。对不起,我没有注意到。谢谢,这已经解决了。我在这里也看到了其他帖子,他们帮了我的忙。很抱歉,我没有注意到这一点。