具有多个条件的Python While循环
有人能帮我解释一下为什么我的while循环不起作用吗? 它强迫用户选择1、2或3,并且不允许他们继续,但是不管你输入1、2或3,它总是说你输入了不同的数字,所以说请选择级别1、2或3具有多个条件的Python While循环,python,while-loop,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("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
行intlevel不会做您认为它会做的事情。它从字符串创建一个整数并返回它。它没有在适当的地方运行。因此,当您使用if语句时,您正在将字符串与始终不相等的整数进行比较
您可能想要:
level = int(level)
作为旁注,也可以使用in运算符写入条件:
if level in (1,2,3):
print("level is ...")
else:
print("pick again!")
#other code ...
行intlevel不会做您认为它会做的事情。它从字符串创建一个整数并返回它。它没有在适当的地方运行。因此,当您使用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:
用于:
请参阅mgilson关于将级别分配为整数的回答,但您确定“级别”是否合法的逻辑也是错误的 更改:
if level != int(1) or level != 2 or level != 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
我想这就是你想要的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
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
你为什么说逻辑是错误的这种风格并不理想,但我认为逻辑没有问题。你为什么说逻辑是错误的样式并不理想,但我认为逻辑上没有问题。另一方面,int1总是可以被1替换…除非你做了一些愚蠢的事情,比如重新绑定名称int。你需要在if语句中更改or to和。它总是会失败,因为级别不能是1、2和3。另一方面,int1总是可以被1替换……除非你做了一些愚蠢的事情,比如重新绑定名称int。你需要在if语句中更改or to和。它总是会失败,因为级别不能是1、2和3。为什么不把整个事情放到while循环中呢def choose_level:while True:level=int输入您的级别,方法是键入1、2或3\n如果在[1、2、3]中输入level:return level为什么不将整个内容放入while循环中def choose_level:while True:level=int输入您的级别,方法是键入1、2或3\n如果在[1、2、3]中输入级别,则返回级别