Python语法错误?

2024-06-16 11:43:40 发布

您现在位置: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()

它不会显示在这个示例中,但是python不会运行它,因为它说第10行(就在'spencer'后面)有语法错误。有人能解释一下我做错了什么吗?你知道吗


Tags: oransweryou游戏davidquestionsprintspencer
3条回答

您应该在if语句之后添加:。你知道吗

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

在if和elif语句的末尾需要一个:。你知道吗

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()

相关问题 更多 >