Python中if语句的问题

0 投票
2 回答
1311 浏览
提问于 2025-04-17 16:29

我在这段代码上遇到了问题。

不管我们输入 '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

Bad input

2 个回答

1

当你输入 register 或者 Register 时,

这段代码 if Name[0] == "Login" or Name[0] == "login": 会被判断为假,也就是不成立,

所以它会输出 Bad input,意思是输入不正确。

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!

撰写回答