括号是否强制内部内容首先执行?



if语句中有多个条件:

if x > 0.01 and x < 0.015 and y != 0 and (var_1 == var_2 == 0):
#do...

现在从我所做的读取,括号将首先执行,我说的对吗?其次,如果首先检查括号并不重要,那么这个例子中的括号是多余的吗?

括号中的链式比较相当于

(var_1 == var_2 and var_2 == 0)

所以你整个表达式等价于

if x > 0.01 and x < 0.015 and y != 0 and (var_1 == var_2 and var_2 == 0):

看文档

括号是多余的,仍然会从左到右求值,导致短路。

最新更新