为什么我的 Or 语句会弄乱我的程序?

Why does my Or statement mess up my programming?

用户 = {} 状态 = ""

def 菜单(): 全局状态 status = input("你是注册用户吗Y/N?输入q退出。\n")

if status == "Y" or "y":  #I wanted to make the option do capital and lowercase Y and N but when I
    OldUser()
elif status == "N" or "n":  #enter "n" it goes to OldUser() instead of Register()
    Register()

def 寄存器(): name = input("请输入用户名:")

if name in users:
    print("The username is already used. Try again.")
else:
    pass_w = input("Enter a password: ")
    users[name] = pass_w
    print("\n Registration Complete! \n")

def OldUser(): login_n = input("请输入您的用户名:")

if login_n in users:
    login_p = input("Enter your password: ")

    if login_p == users[login_n]:
        print("\n Login Successful! \n")
    else:
        print("Password incorrect!")
else:
    print("\n Wrong user or user doesn't exist. \n")

当状态!=“q”时: 菜单()

if status in ["Y", "y"]:  
    OldUser()
elif status in ["N", "n"]:  
    Register()

或者您可以使用

if status  == "Y" or  status  == "y":  
    OldUser()
elif status ==  "N" or  status  =="n":  
    Register()

或者你可以降低地位并这样做

if status.lower() ==  "y":  
    OldUser()
elif status.lower() ==  "n":  
    Register()

你需要这样做:

if status == "Y" or status == "y": 
    OldUser()
elif status == "N" or status == "n":  
    Register()

他们是另一个更好的解决方案:

if status.lower() == "y": 
    OldUser()
elif status.lower() == "n":  
    Register()