我想编写一个while True
循环,只有在用户输入的数字时才会中断:
我写的是这样,但不知何故它不起作用
while True:
s1=input("Choose the item you want to buy (1 and/or 2 only): ")
try:
a=int(s1)
3>a>0
break
except ValueError:
pass
答案 0 :(得分:3)
您需要实际检查值:
if 0 < a < 3:
break
你也可以这样做:
if a in range(1, 3): # or if a in [1, 2]:
break
然而,值得一提的是,try
阻挡越少越好;你最终可能会隐藏自己的错误。因此,更好的结构可能是:
try:
a = int(s1)
except ValueError:
pass
else:
if 0 < a < 3:
break