Python虽然循环与多个条件
问题描述:
任何人都可以帮助为什么我的while循环不工作? 它迫使用户选择1,2或3,并且不让他们继续进行,但无论你是否输入1,2或3,它总是会说你输入了一个不同的数字,所以说“请选择级别1,2或3“Python虽然循环与多个条件
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 ...
答
我想这是你想要的(与因巴尔玫瑰道具)
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
+1
为什么不把整个事情放入while循环? http://pastebin.com/ArVpMNwF:'def choose_level(): True: level = int(input(“通过键入1,2或3来输入您的级别\ n”)) if [1, 2,3]: 返回级别 –
答
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
另一方面,'int(1)'总是*可以被'1'替代。 – mgilson
......除非你做了一件傻事,比如重新命名“int”。 –
您需要在if语句中将“或”更改为“和”。它会一直失败,因为级别不能是1 2和3. –