任何人都可以帮助我为什么我的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
答案 0 :(得分:4)
行int(level)
没有按照您的想法行事。它从字符串创建一个整数,返回它。它没有到位。因此,当你到达if
语句时,你将字符串与整数进行比较,而这些整数总是不相等的。
你可能想要:
level = int(level)
作为旁注,也可以使用in
运算符编写条件:
if level in (1,2,3):
print("level is ...")
else:
print("pick again!")
#other code ...
答案 1 :(得分:1)
请参阅mgilson关于将分配级别作为整数的答案,但是判断“级别”是否合法的逻辑也是错误的。
变化:
if level != int(1) or level != 2 or level != 3:
有:
if level not in (1,2,3)
答案 2 :(得分:0)
我认为这就是你想要的东西(使用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
答案 3 :(得分:0)
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