繁体   English   中英

我不断收到TypeError:'str'对象不可调用(python 2.7)

[英]I keep getting TypeError: 'str' object is not callable (python 2.7)

伙计们,我是一个初学者,我正在尝试(稍有失败)自学编程和编写代码,因此,我们非常感谢您的帮助

favorite_foods = {'Armon' : 'wings',
'Dad' : 'kabob',
'Joe' : 'chinese',
'mom' : 'veggies',
'Das' : 'addas_polo',
'Rudy' : 'free_food',
'Nick' : 'hotnspicy',
'layla' : 'fries',
'Shaun' : 'sugar',
'Zareen' : 'cookie',
'Elahe' : 'hotdogs'}

print(favorite_foods)

print "Whose favorite food do you want to know"
person = raw_input()
fav = (favorite_foods[person])

print "%r favorite food is %s" (person, fav)

我不断收到错误:

 TypeError: 'str' object is not callable.

你们能告诉我我的代码有什么问题吗,以及对于初学者来说如何知道要解决的问题?

谢谢

您在这里缺少%符号:

print "%r favorite food is %s" % (person, fav)

在您的呼叫中,您有: "%r favorite food is %s" (person, fav) ,并且在字符串对象之后有一个呼叫符号,这就是为什么它认为您试图将“字符串”作为函数进行调用的原因。

您可以使用format方法:

print "{person} favorite food is {food}".format(person=person, food=fav)

您也可以这样:

print "{person} favorite food is {food}".format(person=person,food=fav)

我只是喜欢这种方式,因为它更明确,当在字符串中要替换的参数太多而无法跟踪顺序时,此方法很有用。

暂无
暂无

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

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