TypeError:'str'对象不可调用

时间:2013-12-10 20:41:15

标签: python typeerror python-2.x

我对Python很陌生,我想知道是否有人可以帮助我编写我写的代码:

print("What is your name:")
name = raw_input()
print "hi", name, "How are you:"
Feeling = raw_input()
if Feeling ("good"):
   print ("Good")
Else
print ("Thats a shame")

当我运行它时,它会出现错误:

TypeError: 'str' object is not callable

我在网上看过,但由于答案很复杂,我找不到任何有用的东西。

有人可以帮助我。

3 个答案:

答案 0 :(得分:4)

您正尝试将Feeling中存储的字符串用作函数。

if Feeling ("good"):

Feeling"good"周围的括号之间只有空格,Python将其视为函数调用。

你可能想测试它是否等于"good"

if Feeling == "good":
     print "Good"

答案 1 :(得分:4)

在这一行:

if Feeling ("good"):

您尝试将Feeling作为函数调用,"good"作为参数。这就是括号在这种语法中的含义。

如果您想检查Feeling 是否等于 "good",请使用==运算符:

if Feeling == "good":

与此同时,只要你解决了这个问题,下一行你就会遇到另一个问题:

Else

在Python中,大小写很重要; else必须拼写全部小写。此外,块语句(如ifelse)始终需要冒号。并且块语句中的语句必须缩进。所以,你想要这个:

else:
    print("Thats a shame")

你可能想找一个更智能的编辑器来帮助你解决这些问题,而不是使用Notepad / TextEdit /等。任何体面的程序员编辑器 - 包括像SciTE或emacs这样的免费编辑器 - 都会尝试将光标放在正确的位置进行缩进,在发生语法错误时突出显示,等等。

答案 2 :(得分:2)

问题在于这一行:

if Feeling ("good"):

Feeling是一个字符串,是raw_input()的结果。感觉(“好”)看起来像你想把它称为功能。这是不可能的,所以它说“str对象不可调用”。

你可能意味着

if Feeling == "good":

您在:之后也错过了else,您不应该将其他大写,并且后面的行应该缩进。