2013-05-11 159 views
0

我在Python中一個簡單的遊戲擺弄周圍,因爲這個語法錯誤,它不會運行:Python語法錯誤?

intro = 'Greetings! What\'s your name?' 

Hunter = 'Oh, Hey Hunter! Hows life?' 
Spencer = 'Go away you stupid piece of crap!!!' 
David = 'Hey dad.' 

def Questions(): 
    print intro 
    answer = raw_input("Well?").upper() 
    if answer == 'Spencer' or answer == 'spencer' 
     print Spencer 
    elif answer == 'Hunter' or answer == 'hunter' 
     print Hunter 
    elif answer == 'David' or answer == 'david' 
     print David 
     else: 
      print 'Sorry! I don\'t know you!' 
      Questions() 

Questions() 

它不會顯示在這個樣本,但因爲它說,蟒蛇將無法運行該有是第10行的語法錯誤(在'spencer'之後)有人請解釋我做錯了什麼?

回答

1

您應將if語句後添加:

if answer == 'Spencer' or answer == 'spencer': 
1

您在每個if和elif的語句的結束需要一個:

1

你錯過了if上的冒號。

if answer == 'Spencer' or answer == 'spencer': 
+0

當編譯器告訴你有在第10行的錯誤,這意味着「繞線10我弄糊塗了的地方。」實際的錯誤很可能在文件中較早。 – 2013-05-11 02:42:23

1

我相信這是一個冒號在if條件

3

末失蹤加上一個冒號在if語句行的末尾,和elif。任何地方你會縮進下一行,你需要冒號。

另外,您的else語句沒有正確縮進。它應該與上面的elif一致。

而且您可以使用.lower()將字符串轉換爲小寫,因此您只需進行一次比較。啊......我沒有注意到你已經在使用.upper()了。無論哪種方式,同樣的事情,你只需要一個比較。

這些變化,你Question功能應該是這樣的:

def Questions(): 
    print intro 
    answer = raw_input("Well?").lower() 
    if answer == 'spencer': 
     print Spencer 
    elif answer == 'hunter': 
     print Hunter 
    elif answer == 'david': 
     print David 
    else: 
     print 'Sorry! I don\'t know you!' 
     Questions()