Skip to main content
 首页 » 编程设计

python if之else 运算符优先级

2025年05月04日18bjzhanghao

我在 Python 中遇到了一个非常糟糕的 if - else 运算符示例,其中代码看起来不错,但结果与预期完全不同。这是一个简短的版本:

1 + 4 if None else 3  # returns 3 

查看 Operator Precedence在文档中的表中,似乎 if - else 的优先级几乎是最低的。

if - else 是否有任何特殊之处,将 if 左侧的所有内容视为一个表达式?

请您参考如下方法:

嗯,None 总是假的,所以你总是得到 3。

如果您使用真值而不是 None,则

1 + 4 将是结果:

1 + 4 if True else 3 

给出 5。

那正是因为低优先级:它是一样的

(1 + 4) if ... else 3 

如您所知,if ...else 的优先级低于 +。