为了账号安全,请及时绑定邮箱和手机立即绑定

虽然循环不会因多个条件而停止

虽然循环不会因多个条件而停止

小唯快跑啊 2021-06-04 09:27:40
我是编码新手,我想制作一个可以注册人员并将他们重新登录的代码。在处理我的代码时,我想检查用户是否想要登录或注册,所以我在 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 文档orand


查看完整回答
反对 回复 2021-06-09
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

login_or_register != 'login' or login_or_register != 'register'将永远是真实的。您可能想要使用逻辑and:


while login_or_register != 'login' and login_or_register != 'register':

    # ....


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信