我有一堆变量需要验证它们是否在确定的范围内。下面是一个快速示例来演示我想要实现的目标。a=1b=3c=5if 0 <= {a,b,c} <= 6: print("yes")else: print("no")我希望它打印 yes 但它打印 no。我做错了什么?
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
我究竟做错了什么?
{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")
红糖糍粑
TA贡献1815条经验 获得超6个赞
与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 没有使用比较运算符实现向量化操作。
添加回答
举报
0/150
提交
取消