Python while 循环
Python3 学习笔记 · 整理自菜鸟教程
一句话
while 在条件为真时反复执行循环体,是最基础的条件循环,关键是自己更新条件变量,否则死循环。
要点
- 语法:
while 条件:+ 缩进循环体,条件每轮开始前判断一次。 - 条件变量必须在循环体内更新,否则条件永远为真 → 死循环。
while True:是惯用的无限循环写法,靠内部break退出(如菜单循环)。while...else:循环未被 break 正常结束(条件变假)才执行else。break立即结束循环并跳过 else;continue跳过本次剩余语句、回到条件判断。while适合“次数未知、靠条件决定”的场景;次数已知优先用for。- Python 没有
do...while,可用while True:+break模拟“先执行后判断”。 else与break:只要中途break,else就不会执行。- 循环里用
continue要特别小心:别把更新条件变量的语句跳过了。
语法 / 常用方法
| 语法 | 说明 | 示例 |
|---|---|---|
while cond: |
条件为真时循环 | while i < 5: |
| 条件更新 | 循环体内改变量 | i += 1 |
while True: |
无限循环 + break | 菜单/轮询 |
while...else: |
未 break 时执行 else | 正常结束分支 |
break |
结束循环,跳过 else | 提前退出 |
continue |
跳过本次回到判断 | 过滤 |
while a and b: |
多条件 | 短路求值 |
while a or b: |
任一为真 | 轮询 |
| 嵌套 while | 多层循环 | 九九乘法表 |
| 模拟 do-while | 先执行一次再判断 | while True: + break |
while 队列: |
遍历到空 | 列表当栈/队列 |
代码示例
1 | |
易错点
- 忘记更新条件变量是头号死循环原因,用 Ctrl+C 才能中断。
continue放在条件更新之前,可能跳过i += 1,直接死循环;更新语句尽量放循环体开头。while...else的 else 是“没 break 才执行”,有 break 就跳过,别当成恒执行的收尾。- 浮点比较做条件(如
while x != 0.1)可能因精度永不成立,改用大于/小于或整数计数。 - 循环里修改判断依赖的列表/字典,可能让条件突然变假或永不改变,注意状态一致性。
while True忘了写退出条件就是无限循环,确保每条路径最终都能break。- 条件表达式求值代价高时(如反复调用函数),可在循环内缓存结果,避免每轮重算。