Python 核心 · #3 / 11

控制流

if/elif/else、for、while

为什么重要

控制流是你把问题描述翻译成步骤的方式。

核心思想

条件语句选择路径;循环让工作重复进行而无需复制粘贴。只要你事先知道可迭代对象,就优先用 for 而不是 while——for 更难读错,也更难写成死循环。

试一试

if / elif / else 阶梯,配上一个小小的分级器:

def grade(score):
  if score >= 90: return "A"
  elif score >= 80: return "B"
  elif score >= 70: return "C"
  elif score >= 60: return "D"
  else: return "F"

for s in [95, 82, 71, 64, 30]:
  print(s, grade(s))
not loaded

for 遍历一个 range,并用 enumerate 同时拿到索引和值:

names = ["Ada", "Linus", "Margaret", "Grace"]
for i, n in enumerate(names, start=1):
  print(f"{i:>2}. {n}")
not loaded

当停止条件是某种状态而不是次数时,while 是最佳选择。break 提前退出;continue 跳到下一次迭代。

# Find the first square > 100
n = 1
while True:
  if n * n > 100:
      print("first n with n^2 > 100:", n)
      break
  n += 1
not loaded

快速检查

小练习

常见错误

关键要点