← 首页
00:00点开始
学情 用时 0′ 尝试 0 出错 0 归因 0
B 结构期 · 第二课
两条路,都能画出来

上节课的岔路口有个遗憾:条件不成立时,海龟什么都不做。
今天给它加一条"否则走这边"——两条路都能画出来,只是每次只走一条。

开场 9 分钟怎么花: 回扣上节"条件不成立就整块跳过"(3′)→ 抛"那想让它走另一条路怎么办"(3′)→ 发手帖 + 预告作品《两条路都通》(3′)。
老师说 上节课的代码,把 n 改成 1,海龟就站着不动了。
可如果我们想要的是"一条路不走,就走另一条"呢?——今天补上后半句。
第十七种陷阱:以为写了 else 就会"两条都画"。 不是——两条路每次只走一条。看到两条都画出来了,说明代码写错了。

第一步 · 两条路的陷阱 09′–23′ · 14 分钟 · 为什么只画了一条

陷阱换了(第十七种)
写了 else,不代表两条都会画
老师说 下面这段多了一个 else——"否则走这边"。
先猜:n = 3 的时候,海龟会拐几次?会不会两条路都画出来?

把 n 改成 3 跑一次、改成 1 再跑一次。 比较两次的画布:拐的方向不一样,但每次都只拐了一次。

老师纪律:学生说"两条都画出来了吗"时别直接否, 只问:「拐了几次?往哪边拐的?」——让他自己看出"只走了一条"。

第二步 · 内存具象化 23′–37′ · 14 分钟 · else 是"否则走这边"

老师说 if / else 是一对:
条件成立 → 走 if 的缩进块;条件不成立 → 走 else 的缩进块。
两条路,每次只走一条。
位置 · 横
0
位置 · 纵
0
朝向
0°
上节课只有一个缩进块;今天有两个——
一个归 if 管,一个归 else 管。else: 这一行不缩进, 要和 if 对齐;它下面的才是它的"里面"。
两条路每次只走一条——这是 if/else 的规矩。 如果两条都做了,检查 else: 有没有缩进错。
这一步的关键动作:让学生用手指分别按住两个缩进块, 说"条件成立我按这个、不成立我按那个"——把互斥关系用身体比出来。
37′–47′ · 10 分钟该休息啦
休息 1 · 必须离开座位站起来动一动

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

离屏是本课的硬规矩。 两个缩进块的互斥关系,孩子需要一个"不看屏幕"的间隙才能自己理顺。

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

老师说 这次还是不许按运行。手上走两遍:n = 3 走哪块?n = 1 走哪块?
"走 / 不走"分别填 1 和 0——注意 else 的块和 if 的块是反的。
为什么坚持手推:if/else 最容易错的不是语法, 是"两个块互斥"这个观念。手推两遍,比看十遍运行有用。

第四步 · 自己搭 65′–85′ · 20 分钟 · 画出你的两条路

老师说 要求三条:一个 if、一个 else、两块里各至少一行,而且两块画的方向要不一样。
改 n 就能切换走哪条——让别人看不出这是同一段代码画的两张图。
巡场只问三句:else: 和 if 对齐了吗? 两块里各画了什么?把 n 改成 1 会走哪块?
85′–91′ · 6 分钟该休息啦
休息 2 · 离屏伸个懒腰

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

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

老师说 三个破坏实验,每做一个先猜结果:
① 把 else 那块的缩进删掉 → ② 把 else: 那行也缩进 → ③ 干脆把 else 整段删掉。哪个还能跑?
位置 · 横
0
位置 · 纵
0
朝向
0°
实验结论要落到一句话: 缩进决定归属,else: 必须和 if 平级。 删掉 else 整段也不会报错——只是"不成立时什么都不做"(回到上节课)。

第六步 · 读码迁移 105′–120′ · 15 分钟 · 读出它走哪条路

老师说 GESP 一级的分支题常这样考:给一段含 if/else 的代码,问它会做什么。
今天最后一次:不运行,读一段没见过的代码,说出走哪条路、画成什么样。
读码三步:① 每个 if/else 对单独问一遍条件 → ② 判断走哪一块、把走的那几行划出来 → ③ 按顺序连起来走一遍。不要跳步。

收尾(含在 15′ 内)

  • 填手帖:本课三问——条件是什么 / 成立走哪块 / 不成立走哪块
  • 家庭挑战:把《两条路都通》讲给爸妈听,说出把 n 改成几会走另一条
  • 预告(只说作品,不说知识点):下一课海龟开始数数——同一个动作重复几次由它自己决定

家长话术

今天学的是"二选一"——这是分支结构里最常考的一种。
场景照着说
家长问"今天学了啥" 「学了"否则":条件成立走这条路,不成立走那条路。 两条路每次只走一条——他现在能说出指令块是怎么配对的。」
家长问"为什么不两条都画" 「因为 if/else 本来就是"二选一"。真想让两条都出现, 得写成两段独立的 if——那是下次的内容。」
⚠️ 不要说:「这就是 if...else,跟数学的分支一样」—— 孩子没有"分支"这个概念,他只有"两条路只走一条"这个画面。

海龟的画布

(摆好卡片,按运行)

对应的 Python 代码 实时同步

本课硬事实 老师自查