Python3 循环语句
Python3 学习笔记 · 整理自菜鸟教程
一句话
用 while(条件循环)和 for(遍历循环)重复执行代码,break 跳出、continue 跳过本次,循环还可带 else 分支。
要点
while:条件为真就一直循环,记得更新条件变量,否则死循环。for:遍历任何可迭代对象(列表、字符串、range、字典…),不需下标。range(start, stop, step):左闭右开,生成整数序列,不真正建列表。break:立即结束整个循环。continue:跳过后面的语句,进入下一次迭代。pass:空语句占位,什么也不做。else子句:循环未被 break 正常结束时执行;被 break 则跳过。for...else惯用法:常用于“找没找到”的场景。
语法 / 常用方法
| 语法 | 说明 | 示例 |
|---|---|---|
while cond: |
条件循环 | 需自行改变条件变量 |
for x in iterable: |
遍历循环 | for c in "abc": |
range(stop) |
0 到 stop-1 | range(3) → 0,1,2 |
range(start, stop) |
start 到 stop-1 | range(1, 4) → 1,2,3 |
range(start, stop, step) |
带步长 | range(0, 10, 2) |
break |
结束整个循环 | — |
continue |
跳过本次剩余语句 | — |
pass |
占位空语句 | — |
for...else / while...else |
未 break 时执行 else | 判断是否找到 |
enumerate(iter) |
同时取索引和值 | for i, v in enumerate(lst) |
zip(a, b) |
并行遍历多个序列 | for x, y in zip(a, b) |
while True: |
无限循环(配合 break) | 常见菜单循环 |
reversed(seq) |
反向遍历 | for x in reversed(lst) |
sorted(iter) |
遍历排序结果 | 不改原数据 |
代码示例
1 | |
易错点
- while 忘记自增:条件永远为真 → 死循环,用 Ctrl+C 终止。
range左闭右开:range(1, 5)是 1~4,不含 5。for...else语义反直觉:else在没有 break 时执行,不是“循环结束就执行”的普通 else。- 遍历时修改列表:边
for边remove会漏元素,改遍历副本或倒序。 break只跳出最内层:嵌套循环要跳出多层需用标志位或函数return。continue更新变量位置:while里若continue跳过了i += 1,会死循环。- 不可变对象占用:
for遍历时给循环变量重新赋值不改原序列。