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

问题描述

users = {} 状态=“”

def Menu(): 全球地位 状态=输入(“您是注册用户吗?是/否?输入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 Register(): 名称=输入(“输入用户名:”)

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

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

解决方法

您需要这样做:

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...