繁体   English   中英

TypeError:'str'对象不可调用

[英]TypeError: 'str' object is not callable

我是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

我已经在网上看了,但我找不到任何有用的东西,因为答案很复杂。

有人可以帮帮我吗

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

if Feeling ("good"):

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

您可能想测试它是否等于"good"而是:

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

在这一行:

if Feeling ("good"):

你试图将Feeling称为一个函数,以"good"作为参数。 这就是括号在这种语法中的含义。

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

if Feeling == "good":

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

Else

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

else:
    print("Thats a shame")

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

问题是这一行:

if Feeling ("good"):

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

你可能意味着

if Feeling == "good":

你也错过了一个:else ,你不应该大写其他,并且后面的行应该缩进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM