Python While循环具有多个条件

时间:2013-01-09 12:38:27

标签: python while-loop

任何人都可以帮助我为什么我的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

4 个答案:

答案 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