← 首页
00:00点开始
学情 用时 0′ 尝试 0 出错 0 归因 0
B 结构期 · 第四课
让程序自己数:一共发生了几次

课18 的 n 每圈都在变大;今天换一种用法——
n 平时不动,只有"满足条件"那几圈才加 1。它数的是"发生了几次"。

开场 9 分钟怎么花: 回扣课18"变量在循环里会变"(3′)→ 抛"那怎么让它只数某几次"(3′)→ 发手帖 + 预告作品《数一数拐几次》(3′)。
老师说 今天海龟拐完弯,要在最后画一条跟拐弯次数一样长的线。
问题是:它怎么知道拐了几次?——我们给它配一个"计数器"。
第十九种陷阱:计数器归零的位置。 n = 0 写在循环外面才是"清空一次、后面一直累加"; 写进循环里就变成每圈都清空,数到最后还是 0。

第一步 · 计数器的陷阱 09′–23′ · 14 分钟 · 最后那条线怎么这么短

陷阱换了(第十九种)
归零写在循环里面了
老师说 这段代码拐了 4 次,最后应该画一条 4 × 20 = 80 的线。
先猜:跑出来最后那条线有多长?猜完运行。

盯住 n = 0 这一行:它在 for 的上面还是下面?
在下面(缩进了)就每圈清空一次——等于白数。

老师纪律:学生说"线怎么这么短"时不直接指,只问: 「n = 0 这一行,一圈里被执行了几次?」

第二步 · 内存具象化 23′–37′ · 14 分钟 · 计数器的三步走

老师说 计数器只有三步,位置一个都不能错:
① 先归零(循环外面)→ ② 满足才加一(if 里面)→ ③ 最后用(循环外面)。
位置 · 横
0
位置 · 纵
0
朝向
0°
和课18 的 n = n + 12 比一比:
课18 的 n 每圈都加(越走越长);今天的 n 只有满足条件才加(数次数)。
同样的写法,放到不同的位置,就是完全不同的用途。
归零在循环里 = 每圈清空 = 白数。 这一条是本课最容易错的地方,写完先检查 n = 0 缩进了没有。
这一步的关键动作:让学生把三行代码圈出来并标号 (归零 / 加一 / 使用),标不出号说明位置还没搞清。
37′–47′ · 10 分钟该休息啦
休息 1 · 必须离开座位站起来动一动

喝水 / 上厕所 / 不许看屏幕。

离屏是硬规矩。 "归零在一次循环之外还是之内"这件事,不看屏幕反而更容易想明白。

第三步 · 人肉电脑 47′–65′ · 18 分钟 · 不许按运行

老师说 不许按运行。八圈,一圈一行:这一圈拐了吗?n 变成几了?
填完再运行——最后那条线多长,就是你的 n 乘 20。
为什么坚持手推:计数器的值只在满足条件时才跳, 手推一遍才能看出"它跳了几次"。看图形只能看到最终长度,看不到过程。

第四步 · 自己搭 65′–85′ · 20 分钟 · 数出你自己的次数

老师说 要求三条:有一个计数器、只有满足条件才 +1、 最后用这个数决定画多长。
门槛、步长、乘几都可以改——先算一遍该多长,再运行验算。
巡场只问三句:n = 0 在循环里面还是外面? n = n + 1 在 if 里面还是外面?你算出来最后那段该多长?
85′–91′ · 6 分钟该休息啦
休息 2 · 离屏伸个懒腰

喝口水,回来开始搞破坏。

第五步 · 改数试试 91′–105′ · 14 分钟 · 把计数器拆开看

老师说 三个实验,先算再跑:
① 把 n = 0 挪进循环(缩进一步)→ 最后那条线多长?
② 把 n = n + 1 挪到 if 外面 → 数成几次?
③ 把 +1 改成 +2 → 最后多长?
位置 · 横
0
位置 · 纵
0
朝向
0°
三个实验的结论要落到一句话: 计数器只能有一个归零点(循环外)、只在满足条件时加(if 内) —— 位置错一个,数出来的就不是"次数"。

第六步 · 读码迁移 105′–120′ · 15 分钟 · 读出它数了几次

老师说 GESP 一级会这样考:给一段带计数器的代码,问最后这个数是多少。
今天最后一次:不运行,读一段没见过的代码,说出 n 最后是几、线有多长。
读码四步:① 归零在哪、加一在哪 → ② 条件是哪几圈成立 → ③ 成立了几圈 → ④ 最后那个数被用在哪里。不要跳步。

收尾(含在 15′ 内)

  • 填手帖:本课三问——归零在哪 / 加一在哪 / 最后怎么用这个数
  • 家庭挑战:把《数一数拐几次》讲给爸妈听,说出把门槛改成 5 最后那段会变多长
  • 预告(只说作品,不说知识点):下一课要同时问两个条件

家长话术

今天学的是"计数器"——程序里最常用的一个小工具,往后每一步都要用到。
场景照着说
家长问"今天学了啥" 「学让程序自己数数:只在满足条件的那些圈加一,最后用数出来的结果决定画多长。 他今天手推过八圈,看得出数在哪几圈跳的。」
家长问"孩子说线画短了" 「那正是今天要教的:他把'归零'写进循环里了,每圈都清空,等于白数。 让他自己找出来,比告诉他答案有用。」
⚠️ 不要说:「这就是个计数器变量」—— 孩子不需要这个词,他需要的是"清空一次、满足才加、最后用它"这三步的动作。

海龟的画布

(摆好卡片,按运行)

对应的 Python 代码 实时同步

本课硬事实 老师自查