Python:循环不以“中断”退出
我有一个while循环,它正在测试以确保用户输入1、2或3。一旦用户输入1、2或3,循环就会无限继续,我无法摆脱它Python:循环不以“中断”退出,python,Python,我有一个while循环,它正在测试以确保用户输入1、2或3。一旦用户输入1、2或3,循环就会无限继续,我无法摆脱它 while True: try: filterselection = raw_input("Please select a filter (1, 2, or 3): ") if filterselection == "1" or filterselection == "2" or filterselection == "3":
while True:
try:
filterselection = raw_input("Please select a filter (1, 2, or 3): ")
if filterselection == "1" or filterselection == "2" or filterselection == "3":
filterselection = int(filterselection)
break
else:
print "Not a valid number try again!"
except TypeError:
print "Lol, that's not a number try again!"
不要混淆标签和空格!以下是我在将原始代码粘贴到显示空白字符的编辑器中时看到的内容:
箭头是制表符,点是空格,非常重要的一点是不要将它们混合在一起,因为如果您使用Python解释器看到的代码可能与Python解释器看到的不同。不要将制表符和空格混合在一起!以下是我在将原始代码粘贴到显示空白字符的编辑器中时看到的内容:
箭头是制表符,点是空格,非常重要的一点是不要将它们混在一起,因为如果您使用Python解释器看到的代码可能与Python解释器看到的代码不同。问题是…?您的缩进似乎不一致。您可以使用in运算符,而不是多个OR,并说if filterselection in'1'、'2', '3': . 为了你的健康,这里没有任何地方会发生打字错误。除非您想将if更改为在范围1,4:中显示if intfilter_选择,问题是…?您的缩进似乎不一致。您可以使用in运算符并在“1”、“2”、“3”中显示if filterselection,而不是多个OR:。为了你的健康,这里没有任何地方会发生打字错误。除非您想将if改为if intfilter_选择范围为1,4:+1:这里有一个很好的参考:确保代码从Geany正确复制到此站点的最佳方法是什么?因为当我复制和粘贴时,这里的一切看起来都很奇怪。@Binka我猜一切看起来都很奇怪,因为你的代码中混合了制表符和空格,一些网站或程序会显示与8个空格宽度相同的制表符,另一个宽度为4个空格。+1:这里有一个很好的参考:确保代码从Geany正确复制到此站点的最佳方法是什么?因为当我复制和粘贴时,这里的一切看起来都很奇怪。@Binka我猜一切看起来都很奇怪,因为你的代码中混合了制表符和空格,一些网站或程序会显示与8个空格宽度相同的制表符,另一些则是4个空格宽度的制表符。