← Backend / Python / 基础专题

08_for循环与迭代

遍历序列与字典,理解 `range`、`enumerate`、`break` 和 `continue`。

Python 基础专题 08:for 循环与迭代

学习目标:遍历序列与字典,理解 range、enumerate、break 和 continue。

核心知识

for item in iterable 依次取出可迭代对象的元素;它不是 C 语言式的计数器循环。range(5) 产生 0 到 4,range(2, 8, 2) 产生 2、4、6。需要下标时用 enumerate,并行遍历可用 zip;zip 默认在较短输入结束时停止。

values = [4, -1, 7]
total = 0
for index, value in enumerate(values):
    if value < 0:
        continue
    total += value
    print(index, value)
print(total)  # 11

continue 跳过本次剩余语句,break 结束整个循环。for ... else 的 else 在循环没有被 break 中断时运行,适合“找不到目标”。不要在遍历列表时直接删除其中元素,可能跳过后续项;可先构造新列表,例如 [x for x in values if x >= 0]。

遍历字典时 for key in data 得到键,for key, value in data.items() 得到键和值。遍历文件对象可逐行读取,适合大文件。迭代不等于一次把所有数据放进内存。

逐步理解

遍历时可先手工列出第一轮和第二轮:enumerate(values) 给出 (0, 4)、(1, -1);第二轮 continue 跳过累加,所以总和不含 -1。range 是惰性序列,不会立即构造完整列表。需要同时遍历多个序列时确认它们是否等长,因为普通 zip 会在较短的一方结束时停止。

动手练习

练习:在 [5, 8, 13] 中查找第一个偶数。答案:循环遇到 n % 2 == 0 时记录并 break,结果为 8。