分支结构
Python 语言中的分支结构:原理精讲 + 应用场景 + 实战技巧
一、为什么需要分支结构?
到目前为止,我们写的代码都是从上往下一行一行顺序执行,这被称为“顺序结构”。但真实世界充满了**“如果……就……”**的条件判断:
- 如果玩家得分 ≥ 1000,就进入第二关,否则 Game Over;
- 如果体温高于 37.3°C,就提示发烧;
- 如果用户是 VIP,就显示“尊贵会员专享”;
- 如果输入密码正确,就登录系统,否则提示错误。
✅ 这些“要么做 A,要么做 B”的逻辑就必须使用**分支结构(也称选择结构)**来实现。
二、Python 中的分支结构关键词
关键词 | 含义 | 用法示例 |
---|---|---|
if |
条件为真时执行 | if score >= 90: |
elif |
多条件选择中的“否则如果” | elif score >= 80: |
else |
所有条件都不满足时执行 | else: |
match |
模式匹配结构(3.10+) | match value: + case ... |
三、使用 if
构造基础分支结构
✅ 结构格式:
if 条件表达式:
# 代码块(缩进执行)
✅ 实战示例:BMI 判断器(基础版)
height = float(input("身高(cm):"))
weight = float(input("体重(kg):"))
bmi = weight / (height / 100) ** 2
if 18.5 <= bmi < 24:
print("你的身材很棒!")
✅ 使用场景:
- 判断一个输入是否合法
- 决定是否继续执行某段代码
四、使用 if + else
构造双分支结构
✅ 结构格式:
if 条件:
# 条件成立执行
else:
# 条件不成立执行
✅ 实战示例:BMI 判断器(进阶版)
if 18.5 <= bmi < 24:
print("你的身材很棒!")
else:
print("你的身材不够标准哟!")
提示:
if
和else
是互斥关系,永远只有一个会被执行。
五、使用 if + elif + else
构造多分支结构
✅ 结构格式:
if 条件1:
# 满足条件1
elif 条件2:
# 满足条件2
elif 条件3:
# 满足条件3
...
else:
# 所有条件都不满足
✅ 实战示例:BMI 判断器(完整分级)
if bmi < 18.5:
print("体重过轻")
elif bmi < 24:
print("身材正常")
elif bmi < 27:
print("体重过重")
elif bmi < 30:
print("轻度肥胖")
elif bmi < 35:
print("中度肥胖")
else:
print("重度肥胖")
六、缩进与代码块:Python 的独特语法
✅ 注意事项:
- Python 使用缩进表示代码层级(通常 4 个空格)
- 不使用
{}
包裹代码块! - 相同缩进的语句属于同一个代码块
最佳实践: 使用 空格缩进,避免使用
Tab
,并设置编辑器将 Tab 自动转换为 4 个空格(PyCharm 默认支持)
七、Python 3.10+ 新特性:match-case
模式匹配分支结构
✅ 替代多重 if-elif
的简洁方案(类似 switch-case)
match status_code:
case 200: print("成功")
case 404: print("未找到资源")
case 500: print("服务器错误")
case _: print("未知状态码")
✅ 使用场景:
- 判断固定数值状态码、指令、选项编号等
- 可合并多个匹配项(如:
case 400 | 405:
)
八、嵌套分支结构:在分支内嵌套新分支
✅ 示例:
if player_passed:
if star_count == 3:
print("满分通关!")
elif star_count == 2:
print("优秀通关!")
else:
print("普通通关")
else:
print("Game Over")
✅ 最佳实践:
避免过多嵌套 → 推荐使用多层级扁平结构
九、典型分支结构应用案例
例子1:分段函数求值
x = float(input("x = "))
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print(f"{y = }")
例子2:成绩转等级
score = float(input("请输入成绩:"))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print(f"{grade = }")
例子3:判断能否构成三角形并计算周长面积
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
if a + b > c and a + c > b and b + c > a:
s = (a + b + c) / 2
area = (s * (s - a) * (s - b) * (s - c)) ** 0.5
print(f"周长: {a + b + c:.2f}, 面积: {area:.2f}")
else:
print("不能构成三角形")
十、总结 + 最佳实践建议
✅ 本课掌握核心:
- 理解 Python 的
if-elif-else
结构 - 掌握多条件、多分支判断方法
- 掌握
match-case
新语法的使用技巧(Python 3.10+) - 学会控制代码缩进表示结构层级
✅ 最佳实践清单:
需求场景 | 推荐结构 |
---|---|
单条件判断 | if |
是/否选择 | if...else |
多种可能性分类 | if...elif...else |
值匹配 + 分类响应 | match-case |
多条件同时满足 | 使用 and |
条件不满足执行 | 使用 not |
结构清晰可读 | 使用扁平式分支结构 |
代码风格统一 | 缩进统一,注释合理 |
📌 下节预告:Python 的循环结构
分支结构让程序能“做选择”,下一课我们将学习循环结构,让程序能“重复做事”:
- 怎样写一个执行 10 次的循环?
- 怎样在满足条件时一直执行某个任务?
- 怎样跳出或跳过某次循环?
敬请期待《Python 的循环结构》!
如需配套练习题、逻辑结构图、代码书写模板,欢迎随时告诉我。