第 3 章 · 流程控制
本章目标:熟练使用 if / elif / else 分支;掌握 for 与 while 循环及 range();理解 break、continue、else 在循环中的用法;能编写 shop-demo 会员折扣与库存校验逻辑;了解 match-case(3.10+)基础。
学时建议:3~4 小时(含 1 小时跟练)
前置:ch02 变量、比较与逻辑运算符。
3.1 条件语句 if
stock = 5
if stock > 0:
print("有货,可下单")
else:
print("暂时缺货")
| 要点 | 说明 |
|---|---|
| 缩进 | 同一代码块必须一致(推荐 4 空格) |
| 冒号 | if、elif、else 行末要有 : |
| 条件 | 本质是布尔值,非零、非空为真 |
price = 49.9
if price >= 100:
level = "高价"
elif price >= 30:
level = "中价"
else:
level = "低价"
print(level) # 中价
嵌套与组合条件
is_member = True
amount = 120
if is_member:
if amount >= 99:
shipping = 0
else:
shipping = 6
else:
shipping = 10 if amount >= 199 else 12
3.2 三元表达式
discount = 0.9 if qty >= 2 else 1.0
label = "有货" if stock > 0 else "缺货"
适合简单二选一,复杂逻辑仍用 if 块。
3.3 match-case(Python 3.10+)
def shipping_fee(region: str) -> int:
match region:
case "华东" | "华北":
return 8
case "华南":
return 10
case _:
return 15
print(shipping_fee("华东")) # 8
| 场景 | 建议 |
|---|---|
| 多分支枚举 | match 清晰 |
| 范围比较 | 仍用 if/elif |
| 3.9 及以下 | 无 match,用 if/elif |
3.4 for 循环与 range
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(2, 6): # 2, 3, 4, 5
print(i)
for i in range(0, 10, 2): # 0, 2, 4, 6, 8
print(i)
range 形式 | 含义 |
|---|---|
range(n) | 0 到 n-1 |
range(a, b) | a 到 b-1 |
range(a, b, step) | 步长 step |
遍历序列
books = ["Python 基础", "Web 开发", "数据分析"]
for title in books:
print(title)
for idx, title in enumerate(books, start=1):
print(f"{idx}. {title}")
3.5 while 循环
count = 3
while count > 0:
print(f"倒计时 {count}")
count -= 1
print("开始营业")
for vs while | 选用 |
|---|---|
| 已知次数或遍历序列 | for |
| 条件驱动、次数未知 | while |
# 猜数字(教学示例)
secret = 7
attempts = 0
while attempts < 5:
guess = int(input("猜一个 1~10 的数:"))
attempts += 1
if guess == secret:
print("正确!")
break
print("不对,再试")
else:
print("次数用尽")
3.6 break、continue 与 else
for n in range(1, 11):