我正在修补一个简单的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()它不会显示在此示例上,但是python不会运行它,因为它说第10行(在'spencer'之后)存在语法错误,有人可以解释我在做什么吗?
3 回答

杨魅力
TA贡献1811条经验 获得超6个赞
在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()
添加回答
举报
0/150
提交
取消