分支结构
基础教学 1 min read

分支结构

Blog Author

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("你的身材不够标准哟!")

提示: ifelse 是互斥关系,永远只有一个会被执行


五、使用 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 的循环结构》!

如需配套练习题、逻辑结构图、代码书写模板,欢迎随时告诉我。

Related Topics