一、基本语法
Python 的三元运算符采用如下形式:
<value_if_true> if <condition> else <value_if_false>
这是一个表达式(expression),而非语句(statement),因此它可以出现在任何需要值的地方(如赋值、函数参数、返回值等)。
示例:
x = 5
y = 10
max_val = x if x > y else y # 返回 10
注意:顺序是'真值在前',这与 C、Java、JavaScript 等语言的 condition ? a : b 不同。
二、语义与求值规则
Python 惰性求值(short-circuit evaluation):仅对满足条件的一侧进行求值。
def f():
print("f called")
return 1
def g():
print("g called")
return 2
result = f() if False else g()
# 输出:g called
# f() 没有被调用!
这说明:只有被选中的分支会被执行,避免不必要的计算或副作用。
三、历史背景
- Python 在 2.5 版本(2006 年)引入了条件表达式。
- 之前开发者只能用
and/or技巧模拟,但存在逻辑陷阱(见下文'替代方案'部分)。 - 引入该语法是为了提高代码可读性和安全性。
PEP 308(Conditional Expressions)详细讨论了多种提案,最终选择了 a if c else b 的形式,因其清晰、无歧义。
四、典型使用场景
1. 变量赋值
theme = "dark" if user.prefers_dark_mode


