逻辑表达式分组
我想告诉Python我想做以下事情:
if cond1 and (not cond2 or not cond2)
我希望括号里的内容先执行,然后把结果传给and。
2 个回答
0
这其实是一个关于运算符优先级的问题,具体可以参考Python文档。在下面的表格中(从优先级最高到最低),带括号的表达式是最先被执行的。
运算符优先级是大多数编程语言中都存在的一个常见概念。
另外,@Hooked提到的内容叫做短路求值。
13
和大多数编程语言一样,Python是从左到右来计算表达式的。所以你只需要把它们按你想要的顺序放好就行了:
if (not cond2 or not cond3) and cond1