2013-12-10 91 views
2

我很新的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 

我看了網上,但我找不到任何幫助,因爲答案是複雜的。

可能有人請幫助我。

+0

我怎麼玩: >什麼是你的名字: > Kieveli >喜Kieveli你好: > FANTANTILLYDILLYASTIC! >這真是一個恥辱 – Kieveli

+1

@Kieveli:是的,這有點令人遺憾。也許你可以看到一位言語治療師。 ;) – abarnert

回答

4

您正在嘗試使用存儲在Feeling作爲函數的字符串。

if Feeling ("good"): 

一無所有Feeling和周圍"good"括號之間的空格,Python看到,作爲一個函數調用。

你可能想測試它是否等於"good"代替:

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

在這一行:

if Feeling ("good"): 

你試圖調用Feeling的功能,具有"good"作爲論據。這就是括號在這個語法中的含義。

如果你想檢查Feeling是否等於"good",使用==操作:

if Feeling == "good": 

同時,只要你解決這個問題,你將不得不與另一個問題下一行:

Else 

在Python中,大寫字母數; else必須拼寫成全部小寫字母。此外,語句塊(如ifelse)總是需要冒號。塊語句中的語句必須縮進。所以,你要這樣:

else: 
    print("Thats a shame") 

您可能希望找到一個更聰明的編輯器,它可以幫助你與一些這方面的東西,而不是使用記事本/文本編輯/ etc中。任何像樣的程序編輯器,包括免費的像賽特或Emacs,會盡量把光標移動到合適的位置縮進,當你做了一個語法錯誤,等等突出。

+0

我不使用記事本即時通訊使用空閒 – TheRaspberryPiBoy

+0

由於OP是使用Python 2.x,也許他們應該使用「打印」這是一個恥辱「,並避免括號。 – SethMMorton

+0

@SethMMorton:當有足夠的已經解釋的代碼時,沒有理由改變已經正常工作的代碼部分。 – abarnert

2

問題是這樣的線:

if Feeling ("good"): 

Feeling是一個字符串,的的raw_input()的結果。感覺(「好」)看起來像你想把它稱爲一個函數。這是不可能的,所以它說「str對象不可調用」。

你可能是指

if Feeling == "good": 

你還缺少一個:else後,你不應該利用別人,並應縮進後的線。

+0

現在說它存在連接問題 – TheRaspberryPiBoy

相關問題