Python条件表达式写法为“值1 if 条件 else 值2”,用于一行内简单条件选择,不可省略else,不能执行语句,仅返回值,嵌套不宜超过一层。

Python 中的条件表达式(也叫三元运算符)写法是:值1 if 条件 else 值2。它不是独立的运算符,而是一种简洁的表达式语法,用于在一行内完成简单的条件选择,不能替代完整的 if-elif-else 语句。
基本写法与执行逻辑
条件表达式由三部分组成:结果A、判断条件、结果B,顺序固定,不可调换。
- 先计算 条件,结果必须为布尔值或可转为布尔值的对象
- 条件为真(True),整个表达式返回 值1
- 条件为假(False),返回 值2
例如:x = "正数" if num > 0 else "非正数" —— 比写四行 if/else 更紧凑。
嵌套使用要谨慎
可以多层嵌套实现类似 if-elif-else 的效果,但可读性会明显下降。
立即学习“Python免费学习笔记(深入)”;
比如模拟三选一:
result = "大" if x > 10 else ("中" if x > 5 else "小")
建议只在逻辑简单、嵌套不超过一层时使用;超过两层就该换成标准 if 语句。
常见误用提醒
- 不能省略 else 分支——a if True 是语法错误
- 不能直接执行语句(如 print、赋值),只能返回值——print("ok") if x else print("no") 合法,但 x = 1 if True else y = 2 错误
- 条件部分不要放有副作用的操作(如函数调用修改状态),因为每次表达式求值都会执行它
实用场景举例
适合用于初始化变量、字典键值选择、列表推导中的元素生成等轻量判断。
- 给变量设默认值:name = user_input if user_input else "匿名"
- 构造字典:config = {"mode": "debug" if DEBUG else "release"}
- 列表推导中过滤转换:[x * 2 if x % 2 == 0 else x for x in nums]
不复杂但容易忽略细节,掌握好能让你的代码更干净。










