Python if-else 的多分支写法

多分支判断可用if-elif-else、字典映射、match-case(Python 3.10+)或条件列表结合next()实现,根据场景选择更简洁高效的方式。

Python 中处理多分支条件判断时,除了使用多个 if-elif-else 结构外,还有更简洁、清晰的写法。下面介绍几种常见的多分支实现方式。

1. 使用 if-elif-else 链

这是最基础也是最常用的多分支结构,适合条件明确且数量不多的情况。

示例:

x = 2
if x == 1:
print("选项一")
elif x == 2:
print("选项二")
elif x == 3:
print("选项三")
else:
print("其他")

注意:条件从上到下依次判断,一旦某个条件为真,其余分支将不再执行。

2. 使用字典映射函数或值

当分支较多且逻辑简单时,可以用字典代替多个 elif,提高可读性和性能。

示例:用字典映射返回值

def get_grade(score):
return {
'A': '优秀',
'B': '良好',
'C': '及格',
'D': '不及格'
}.get(score, '未知')

示例:映射函数

def handle_a():
return "处理 A"

def handle_b():
return "处理 B"

actions = {
'a': handle_a,
'b': handle_b,
'c': lambda: "处理 C"
}

result = actions.get('a', lambda: "默认处理")()
print(result)

这种方式适合状态机、菜单选择等场景,代码更易维护。

3. 使用 match-case(Python 3.10+)

Python 3.10 引入了模式匹配 match-case,语法更接近传统 switch-case。

示例:

x = 'blue'
match x:
case 'red':
print("红色")
case 'green':
print("绿色")
case 'blue':
print("蓝色")
case _:
print("未知颜色")

支持复杂模式匹配,如元组、类实例等,但对简单多分支已足够强大。

4. 使用列表或元组包含条件表达式

适用于返回固定值的简单判断,可以结合 next() 和生成器使用。

示例:通过条件列表查找第一个匹配项

x = 75
result = next(
msg for condition, msg in [
(x >= 90, "优秀"),
(x >= 70, "良好"),
(x >= 60, "及格")
] if condition
, "不及格")
print(result) # 输出:良好

这种写法紧凑,适合数值区间判断等场景。

基本上就这些常用方法。根据 Python 版本和具体需求选择合适的方式,能让代码更清晰高效。