逻辑表达式分组

1 投票
2 回答
6436 浏览
提问于 2025-04-17 12:07

我想告诉Python我想做以下事情:

if cond1 and (not cond2 or not cond2)

我希望括号里的内容先执行,然后把结果传给and。

2 个回答

0

这其实是一个关于运算符优先级的问题,具体可以参考Python文档。在下面的表格中(从优先级最高到最低),带括号的表达式是最先被执行的。

运算符优先级是大多数编程语言中都存在的一个常见概念。

另外,@Hooked提到的内容叫做短路求值

在这里输入图片描述

13

和大多数编程语言一样,Python是从左到右来计算表达式的。所以你只需要把它们按你想要的顺序放好就行了:

if (not cond2 or not cond3) and cond1

撰写回答