伙计我是初学者,我正在尝试(稍微失败)自学编程和编写代码,以便真正感谢您的帮助
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.
你能告诉我我的代码有什么问题,以及如何为初学者知道要解决什么问题?
由于
答案 0 :(得分:6)
你在这里缺少%符号:
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)
答案 1 :(得分:-1)
你也可以这样做:
print "{person} favorite food is {food}".format(person=person,food=fav)
我更喜欢这种方式,因为它更明确,当你有太多的参数替换字符串以跟踪订单时,它很有用。