评估多个值的条件

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


下面是一个快速示例来演示我想要实现的目标。


a=1

b=3

c=5


if 0 <= {a,b,c} <= 6:

    print("yes")

else:

    print("no")

我希望它打印 yes 但它打印 no。我做错了什么?


慕尼黑8549860
浏览 182回答 2
2回答

婷婷同学_

我究竟做错了什么?{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)):&nbsp; &nbsp; print("yes")else:&nbsp; &nbsp; print("no")

红糖糍粑

与Python 3.x中,对于整数你可以用all用range:if&nbsp;all(x&nbsp;in&nbsp;range(7)&nbsp;for&nbsp;x&nbsp;in&nbsp;(a,&nbsp;b,&nbsp;c)): &nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;your&nbsp;logic对于非整数或 Python 2.x,您可以使用链式操作:if&nbsp;all(0&nbsp;<=&nbsp;x&nbsp;<=&nbsp;6&nbsp;for&nbsp;x&nbsp;in&nbsp;(a,&nbsp;b,&nbsp;c)): &nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;your&nbsp;logic您的逻辑问题在于 Python 没有使用比较运算符实现向量化操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python