0

我正在用 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”之后)有一个语法错误,有人可以解释一下我做错了什么吗?

4

5 回答 5

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()
于 2013-05-11T02:43:24.213 回答
1

你应该:在你的if陈述之后添加。

if answer == 'Spencer' or answer == 'spencer':
于 2013-05-11T02:41:02.203 回答
1

:在每个 if 和 elif 语句的末尾都需要 a 。

于 2013-05-11T02:41:02.377 回答
1

你错过了 if 的冒号。

if answer == 'Spencer' or answer == 'spencer':
于 2013-05-11T02:41:04.990 回答
1

我相信在 if 条件的末尾缺少一个冒号

于 2013-05-11T02:41:49.720 回答