for循环是处理固定次数重复任务最直接的方式,通过range()明确控制次数,避免手动计数;需警惕修改遍历对象、索引越界等问题;善用break、continue和else提升效率;嵌套与解包可简化多维任务。

for循环是处理固定次数重复任务最直接、最常用的方式。它清晰表达“执行N次”的意图,代码可读性强,出错率低。
明确循环次数:用range()控制迭代范围
Python中,range(start, stop, step) 是for循环的核心工具。大多数固定次数任务只需指定终止值:
- range(5) 生成 0,1,2,3,4 —— 执行5次
- range(1, 6) 生成 1,2,3,4,5 —— 从1开始执行5次
- range(0, 10, 2) 生成 0,2,4,6,8 —— 步长为2,执行5次
避免手动维护计数器变量,直接让range承担“次数管理”职责。
避免常见陷阱:索引、边界与修改问题
循环体内部操作容易引发意外行为:
- 不要在循环中修改正在遍历的列表(如删除元素),会导致跳过或报错;需反向遍历或收集待删索引再统一处理
- 注意索引越界:用 range(len(lst)) 遍历时,确保不访问 lst[i] 超出范围
- 若需同时使用索引和元素,优先用 for i, item in enumerate(lst):,更安全直观
提升效率:提前退出与条件跳过
并非每次都要跑满全部次数。合理使用 break 和 continue 能节省资源:
- 找到目标后立即 break,比如在列表中搜索首个偶数
- 用 continue 跳过不满足条件的轮次,比如只处理正数、忽略空字符串
- 配合 else 子句(for-else结构):仅当循环自然结束(未被break中断)时执行,适合“未找到则执行默认逻辑”场景
扩展思路:嵌套与解包简化多维任务
处理二维数据或组合任务时,嵌套for或序列解包能让逻辑更紧凑:
- 双层循环遍历矩阵:for row in matrix: for cell in row:
- 遍历坐标对:for x, y in [(0,0), (1,2), (3,1)]:
- 批量初始化或赋值:for i, name in enumerate(['Alice', 'Bob', 'Cindy']): users[i]['name'] = name
比起写多层索引或临时变量,解包和嵌套让意图一目了然。











