True循环的两个条件

时间:2014-03-09 20:50:35

标签: python

我想编写一个while True循环,只有在用户输入的数字时才会中断:

  • 是一个整数
  • 数字为1或2

我写的是这样,但不知何故它不起作用

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

1 个答案:

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