2015-04-19 78 views
2

夥計們我是一個初學者,我試圖(略有失敗)教自己編程和編寫代碼,所以你的幫助真的很感謝我一直得到TypeError:'str'對象不可調用(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. 

你們能告訴我什麼是錯我的代碼,以及如何,對於初學者來說,知道解決什麼?

感謝

+1

哪一行導致錯誤? – sshashank124

+0

line 19它說 –

+5

提供**完整的追蹤**,其中包括有問題的線路更有幫助。 – jonrsharpe

回答

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) 
+4

你也應該告訴OP有關新的首選的'.format()'方法 – sshashank124

+1

請注意'%'格式化語句[不再指代棄用](https://docs.python.org/3/library/ stdtypes.html#printf-style-string-formatting) - 見例如http://stackoverflow.com/a/13454823/3001761 – jonrsharpe

-1

你也可以做這樣的:

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

我只是喜歡這種方式,因爲它是更加明確,當你擁有它是非常有用的在字符串中要替換的參數太多以跟蹤訂單。

相關問題