[英]Python While Loop with multiple conditions
任何人都可以帮助我为什么while循环无法正常工作吗? 它迫使用户选择1、2或3,而不让他们继续操作,但是无论您输入1、2还是3,它总是表明您输入了另一个数字,因此说“请选择1、2或3级
level = input("Enter your level by typing 1, 2 or 3\n")
int(level)
levelSelect = 1
while levelSelect == 1:
if level != int(1) or level != 2 or level != 3:
level = input("Please choose level 1, 2 or 3\n")
int(level)
else:
print("You have selected level", level)
levelSelect = 0
int(level)
行没有执行您认为的操作。 它从字符串创建一个整数并返回它。 它没有在原地运行。 因此,当您进入if
语句时,您正在将字符串与始终不相等的整数进行比较。
您可能想要:
level = int(level)
附带说明,条件也可以使用in
运算符编写:
if level in (1,2,3):
print("level is ...")
else:
print("pick again!")
#other code ...
请参阅mgilson关于将分配级别作为整数的答案,但是您在确定“级别”是否合法时的逻辑也是错误的。
更改:
if level != int(1) or level != 2 or level != 3:
对于:
if level not in (1,2,3)
我想这就是您想要的(Inbar Rose的道具)
def get_level():
while True:
level = int(input("Enter your level by typing 1, 2 or 3\n"))
if level in [1, 2, 3]:
return level
mgilson已在此处指出了核心问题,但是我将提出建议以改进您的代码。
while True:
level = input('Enter level: ')
if level not in ('1','2','3'):
print('Try again!\n')
else:
print('You chose level ', level)
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.