我是编码新手,我想制作一个可以注册人员并将他们重新登录的代码。在处理我的代码时,我想检查用户是否想要登录或注册,所以我在 python 中制作了这段代码。login_or_register = Nonewhile login_or_register != 'login' or login_or_register != 'register': login_register = input('Would you like to login or register?') login_or_register = login_register.lower() login_or_register = login_register即使变量满足条件,While 循环也不会停止。我试图删除第二个条件,但由于某种原因它开始起作用。这可能是一个愚蠢的问题,但请耐心等待我是一名高中生。Would you like to login or register?loginWould you like to login or register?registerWould you like to login or register?keeps going :(Would you like to login or register?假设输入是登录或注册时停止循环。输出假设将变量 login_or_register = None 更改为答案。
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
您的循环条件不可能变为真。
orTrue如果两个条件之一或两者都变为 ,则返回True。如果您的输入是'login',则第一个条件是False,第二个条件是True。
因为'register'第一个条件变成True了第二个'False'。
在所有其他情况下,两个条件都是True。因此,您创建了一个无限循环。
一个解决方案是将两个条件与一个and或什至更好地创建一个包含所有允许输入的列表并使用一个in来检查用户输入是否在该列表中。如果您允许用户输入更多不同的选项,那将更加清楚。
例如:
login_or_register = None
while login_or_register not in ['login', 'register']:
login_register = input('Would you like to login or register?')
login_or_register = login_register.lower()
您可能还想查看python 文档or
和and
江户川乱折腾
TA贡献1851条经验 获得超5个赞
login_or_register != 'login' or login_or_register != 'register'将永远是真实的。您可能想要使用逻辑and:
while login_or_register != 'login' and login_or_register != 'register':
# ....
添加回答
举报
0/150
提交
取消