while 在做什么
上一课的 if 只看一次情况就走过去了。但有些事要反复做、直到某个条件不成立才停。while 循环就是干这个的:每一轮先看条件成不成立,成立就再做一轮,直到条件变假才停。
用「跑步机」理解:只要还没累就继续跑,累了就停。或者「攒钱攒到够了才停」,攒够的那刻条件不再成立,循环自动结束。
每一轮的三步:判断 → 执行 → 更新
while 的一轮永远是这三步:
- 判断条件成不成立;
- 成立就执行循环体;
- 更新循环变量,让它一点点逼近「停」的那一刻;
然后回到第 1 步再判断。第 3 步是关键,少了它循环就永远停不下来。
一个完整例子:从 1 加到 3
n = 1
result = 0 # 累加器,先清零
while n <= 3: # 条件成立就继续
result = result + n # 把当前 n 加进来
n = n + 1 # 更新循环变量
print(result) # 6result 在循环外清零,循环里每轮把 n 加进去、再让 n 加 1。n 从 1 走到 4 时,「4 <= 3」变假,循环停下,result = 1+2+3 = 6。
最大的坑:死循环
如果忘了在循环里更新循环变量:
n = 1
while n <= 3:
print(n) # 缺了 n = n + 1n 永远是 1,「1 <= 3」永远成立,程序会无限重复、卡死停不下来,这就是死循环。写 while 一定要保证每轮都让循环变量朝「条件变假」的方向走一步。
for 还是 while?
两种循环能互相替代,但各有擅长:
- 次数已知 / 遍历列表 → 用
for,它帮你自动数数、自动往后走,不用手动更新。 - 次数不定、靠条件停 → 用
while,比如「攒够才停」「让用户猜数字直到猜对」。
记住「次数已知用 for、靠条件停用 while」,大多数情况就能挑对。