Python if语句的问题

时间:2013-02-20 13:56:02

标签: python conditional if-statement

我对这段代码有疑问。 不知怎的,如果我们输入'register''Register'作为输入,它会进入寄存器功能,但在打印出else之后:Aswell ("Bad input");我已经做了更多这些但却找不到这个错误。

请帮帮我。谢谢!这是我的代码:

def Boot(): 
        print "Type 'Login' + accountname to login."

        x = raw_input("> ")
        Name = x.split()

        if x == "Register" or x == "register":
            print "Registerbla"

        if Name[0] == "Login" or Name[0] == "login":
            print "Loginblabla"
        else:
            print "Bad input"

所以我在输入后看到的是: Registerbla 输入错误

2 个答案:

答案 0 :(得分:2)

您错过了if语句的else部分。没有它,你实际上检查两个单独的if语句:寄存器部分和登录/坏输入部分。相反,您应该使用elif

    if x == "Register" or x == "register":
        print "Registerbla"
    elif Name[0] == "Login" or Name[0] == "login":
        print "Loginblabla"
    else:
        print "Bad input"

另外,请考虑更改您的语句以检查小写,例如

if x.lower() == "register":
    # Now any capitalized variant of register will work!

答案 1 :(得分:1)

当您输入registerRegister

if Name[0] == "Login" or Name[0] == "login":

评估为false,打印Bad input