Python启蒙 · while循环专题

循环体执行完,回到 while 开头重新检查。

while 不是把上一次的 True 一直拿来用。程序每完成一轮,都会带着变量的新值回到循环开头,再算一次条件。

10分钟专题先检查,再执行重点:重新计算条件

第一段 while

收集到 5 颗星星就停止

先运行,不急着背定义。让孩子预测会显示几次,再用下面的流程去验证。

python
stars = 0
 
while stars < 5:
    stars = stars + 1
    print("收集到", stars, "颗星星")
 
print("循环结束")

01

初始值

stars 从 0 开始。

02

继续条件

只要 stars < 5,就执行缩进代码。

03

更新变化

每轮让 stars 加 1,条件才会逐渐改变。

真正的循环路线

不是回到旧判断,而是重新算一次

标准流程图把“回到 while 开头”和“重新计算条件”合并在菱形里,语义没有错,但对初学者容易显得像在复用上一次的答案。课堂图把这两步拆开更清楚。

只在开始时执行一次

stars = 0

循环入口

回到 while 开头

使用 stars 现在的值

重新计算 stars < 5

结果是 True

执行缩进的循环体

stars 加 1,显示数量。执行完以后,回到上面的“循环入口”。

循环体结束 → 回到 while 开头 ↑

结果是 False

离开 while 循环

不再执行缩进代码,继续运行循环后面的 print("循环结束")。

孩子版说法

“每做完一轮,都回到门口重新问:现在还要继续吗?”

准确说法

“程序回到循环头,用变量的当前值重新求值条件表达式。”

一步一步追踪

循环体执行 5 次,条件检查 6 次

第 6 次检查虽然没有进入循环体,却正是程序知道“该停了”的关键一步。

检查次数检查前 stars重新计算结果接下来
100 < 5True加 1,显示 1
211 < 5True加 1,显示 2
322 < 5True加 1,显示 3
433 < 5True加 1,显示 4
544 < 5True加 1,显示 5
655 < 5False离开循环

课堂追问

“为什么只收集 5 颗星星,却检查了 6 次?”让孩子指着最后一行回答:最后一次检查负责发现条件已经不成立。

顺序改变,结果也改变

先加 1,还是先打印?

先更新,再打印

python
stars = 0
 
while stars < 5:
    stars = stars + 1
    print(stars)
 
# 输出:1、2、3、4、5

先打印,再更新

python
stars = 0
 
while stars < 5:
    print(stars)
    stars = stars + 1
 
# 输出:0、1、2、3、4

两段代码都执行 5 次,但显示内容不同。循环不是“重复一堆代码”这么简单,循环体内部的先后顺序同样重要。

最重要的安全提醒

条件一直不变,循环就可能一直跑

python
stars = 0
 
while stars < 5:
    print(stars)

哪里出了问题?

stars 永远是 0,所以每次重新计算 0 < 5,结果都还是 True。

怎么检查?

找到循环中会变化的量,并确认它确实会让条件逐渐变成 False。

课堂组织

一次只讲到孩子能马上用

第1分钟

先预测

遮住运行结果,问“会显示几颗星星?”

第2—4分钟

走流程

每轮都说完整:回到 while 开头,用 stars 现在的值重新检查。

第5—7分钟

填追踪表

孩子扮演 Python,老师每次只允许他执行一行。

第8—10分钟

只改一处

把 5 改成 3,或交换“加 1”和“打印”的顺序,再验证预测。

这次讲清楚

初始值、条件、循环体、变量更新、重新检查、条件为 False 后离开循环。

以后再讲

break、continue、while True、嵌套循环。它们不是理解第一段 while 的前置知识。

马上练一练

先说预测,再运行验证

  1. 把 stars < 5 改成 stars < 3,条件会检查几次?
  2. 把 stars 的初始值改成 5,循环体会执行几次?
  3. 把 < 改成 <=,最后会显示到几?