[英]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()
您可能还想看看or
和and
的python文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.