计算一个条件的多个值

时间:2019-01-16 10:47:18

标签: python python-2.7 if-statement

我有一堆变量,需要验证它们是否在确定的范围内。

下面是一个简单的示例,演示我想要实现的目标。

a=1
b=3
c=5

if 0 <= {a,b,c} <= 6:
    print("yes")
else:
    print("no")

我希望它能打印是,但不会打印。我在做什么错了?

2 个答案:

答案 0 :(得分:3)

  

我在做什么错了?

{a,b,c}是一组三个值。它不是介于0到6之间的值。

条件0 <= {a,b,c} <= 6实际上在Python 3中产生了一个异常,因为询问一个集合是否大于或小于一个数字没有意义。如果您的代码显示"no",那么您可能正在使用Python 2。

如果要检查条件是否满足某个顺序中的每个值,可以使用内置函数all

if all(0 <= x <= 6 for x in (a,b,c)):
    print("yes")
else:
    print("no")

答案 1 :(得分:1)

对于Python 3.x,对于整数,可以将allrange结合使用:

if all(x in range(7) for x in (a, b, c)):
    # your logic

对于非整数或Python 2.x,可以使用链式操作:

if all(0 <= x <= 6 for x in (a, b, c)):
    # your logic

您的逻辑问题是Python无法使用比较运算符实现向量化操作。