Python启蒙 · while循环专题
循环体执行完,
回到 while 开头重新检查。
while 不是把上一次的 True 一直拿来用。程序每完成一轮,都会带着变量的新值回到循环开头,再算一次条件。
第一段 while
收集到 5 颗星星就停止
先运行,不急着背定义。让孩子预测会显示几次,再用下面的流程去验证。
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,显示数量。执行完以后,回到上面的“循环入口”。
结果是 False
离开 while 循环
不再执行缩进代码,继续运行循环后面的 print("循环结束")。
孩子版说法
“每做完一轮,都回到门口重新问:现在还要继续吗?”
准确说法
“程序回到循环头,用变量的当前值重新求值条件表达式。”
一步一步追踪
循环体执行 5 次,条件检查 6 次
第 6 次检查虽然没有进入循环体,却正是程序知道“该停了”的关键一步。
| 检查次数 | 检查前 stars | 重新计算 | 结果 | 接下来 |
|---|---|---|---|---|
| 第 1 次 | 0 | 0 < 5 | True | 加 1,显示 1 |
| 第 2 次 | 1 | 1 < 5 | True | 加 1,显示 2 |
| 第 3 次 | 2 | 2 < 5 | True | 加 1,显示 3 |
| 第 4 次 | 3 | 3 < 5 | True | 加 1,显示 4 |
| 第 5 次 | 4 | 4 < 5 | True | 加 1,显示 5 |
| 第 6 次 | 5 | 5 < 5 | False | 离开循环 |
课堂追问
“为什么只收集 5 颗星星,却检查了 6 次?”让孩子指着最后一行回答:最后一次检查负责发现条件已经不成立。
顺序改变,结果也改变
先加 1,还是先打印?
先更新,再打印
stars = 0
while stars < 5:
stars = stars + 1
print(stars)
# 输出:1、2、3、4、5先打印,再更新
stars = 0
while stars < 5:
print(stars)
stars = stars + 1
# 输出:0、1、2、3、4两段代码都执行 5 次,但显示内容不同。循环不是“重复一堆代码”这么简单,循环体内部的先后顺序同样重要。
最重要的安全提醒
条件一直不变,循环就可能一直跑
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 的前置知识。
马上练一练
先说预测,再运行验证
- 把 stars < 5 改成 stars < 3,条件会检查几次?
- 把 stars 的初始值改成 5,循环体会执行几次?
- 把 < 改成 <=,最后会显示到几?
模块目录
Python 启蒙