Python 中如何使用三元(条件)运算符?

Python 三元运算符写法是 x if 条件 else y(与其他语言的 条件?x:y 不同)。本文介绍语法、使用场景及可读性注意事项。

最佳实践
Python 中如何使用三元(条件)运算符?封面

Python 的三元表达式写作 值1 if 条件 else 值2——条件在中间,和其他语言的 条件 ? 值1 : 值2 顺序不同。适合简单的二选一赋值。

基本语法

# 传统 if-else
if age >= 18:
    status = "成年"
else:
    status = "未成年"

# 三元表达式(一行)
status = "成年" if age >= 18 else "未成年"

常见用法

# 默认值
name = user.name if user else "匿名"

# 数字处理
abs_val = x if x >= 0 else -x

# 在 f-string 中
print(f"状态: {'通过' if score >= 60 else '未通过'}")

# 函数返回值
def parity(n):
    return "偶数" if n % 2 == 0 else "奇数"

可读性红线

三元表达式适合简单、短的条件。以下情况请回到 if-else:

# 嵌套三元——可读性灾难,不要这么写
result = "A" if x > 90 else ("B" if x > 80 else ("C" if x > 60 else "D"))

常见问题(FAQ)

Q:三元表达式能省略 else 吗?
A:不能,if-else 必须成对出现。它是表达式,必须产生一个值。

Q:和 or 短路写法有什么区别?
A:x or 默认值 在 x 为假值(0、""、None、[])时都会取默认值,无法区分"假值"和"不存在";三元表达式只在明确判断条件时取分支,更精确。

Q:性能上有差别吗?
A:没有实质差别,选可读性好的写法。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台