2013-05-11 121 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()