我有一堆变量,需要验证它们是否在确定的范围内。
下面是一个简单的示例,演示我想要实现的目标。
a=1
b=3
c=5
if 0 <= {a,b,c} <= 6:
print("yes")
else:
print("no")
我希望它能打印是,但不会打印。我在做什么错了?
答案 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,对于整数,可以将all
与range
结合使用:
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无法使用比较运算符实现向量化操作。