跳转至

程序控制流

控制流决定了程序执行的路径。包括条件判断(分支)和循环。

1. 条件语句 (if)

基本结构

x = 10

if x > 0:
    print("x 是正数")
elif x < 0:
    print("x 是负数")
else:
    print("x 是零")

嵌套 if

age = 20
has_ticket = True

if age >= 18:
    if has_ticket:
        print("准许入内")
    else:
        print("请先买票")
else:
    print("未成年人禁止入内")

三元运算符 (条件表达式)

用于将简单的 if-else 简写为一行。

# 语法: value_if_true if condition else value_if_false
status = "Adult" if age >= 18 else "Minor"

2. 模式匹配 (match-case)

Python 3.10+ 引入的新特性,类似于其他语言的 Switch-Case,但更强大。

status = 404

match status:
    case 200:
        print("Success")
    case 400 | 404: # 匹配多个值
        print("Client Error")
    case 500:
        print("Server Error")
    case _:         # 默认情况 (类似 default)
        print("Unknown Status")

3. 循环语句 (Loops)

for 循环

用于遍历序列(列表、字符串、元组等)或迭代器。

# 遍历列表
names = ["Alice", "Bob", "Charlie"]
for name in names:
    print(f"Hello, {name}")

# 遍历字符串
for char in "Python":
    print(char)

range() 函数

常用于生成数字序列。

# range(stop) -> 0 到 stop-1
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

# range(start, stop)
for i in range(1, 4):
    print(i)  # 1, 2, 3

# range(start, stop, step)
for i in range(0, 10, 2):
    print(i)  # 0, 2, 4, 6, 8

while 循环

在条件为 True 时重复执行。

count = 5
while count > 0:
    print(count)
    count -= 1  # 别忘了更新条件,否则死循环
print("Blastoff!")

4. 循环控制

关键字 作用
break 立即终止整个循环
continue 跳过本次迭代,直接进入下一次循环
pass 占位符,什么都不做 (保持语法结构完整)

示例

for i in range(10):
    if i == 3:
        continue  # 跳过 3
    if i == 5:
        break     # 到 5 停止
    print(i)
# 输出: 0, 1, 2, 4

5. 循环中的 else

Python 的循环支持 else 子句,这是一个独特但容易混淆的特性。 当循环正常结束(没有任何 break)时,执行 else 块。

# 查找质数示例
num = 11

for i in range(2, num):
    if num % i == 0:
        print(f"{num} 不是质数")
        break
else:
    # 只有循环完整走完没遇到 break 时才执行
    print(f"{num} 是质数")

本章小结

  • if-elif-else: 处理逻辑分支。
  • for: 遍历确定的序列,配合 range() 使用。
  • while: 处理不确定次数的循环。
  • break: 提前退出。
  • continue: 跳过当前次。

练习题

  1. 成绩评级:编写程序,根据输入的分数 (0-100),输出评级:90+为 A, 80-89 为 B, 70-79 为 C, 60-69 为 D, 60 以下为 F。
  2. 累加求和:使用 for 循环计算 1 到 100 的所有偶数之和。
  3. 猜数字游戏:程序随机生成一个 1-100 的数字(需 import random; target = random.randint(1, 100)),让用户通过 while 循环猜测,提示"大了"或"小了",直到猜对并在结束时打印猜测次数。

下一章:函数