繁体   English   中英

While循环不会因多种条件而停止

[英]While loop doesn't stop with multiple conditions

我是编码新手,我想制作一个可以注册人员并重新登录的代码。在编写我的代码时,我想检查用户是否要登录或注册,所以我用python编写了此代码。

login_or_register = None
while 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?login
Would you like to login or register?register
Would you like to login or register?keeps going :(
Would you like to login or register?

假设在输入为登录或注册时停止循环。 假设输出将答案更改为login_or_register = None。

login_or_register != 'login' or login_or_register != 'register'始终为True。 您可能要使用逻辑and

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

循环的条件不可能变为真。

or返回True ,如果这两个条件中的一个或两个变成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()

您可能还想看看orand的python文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM