# 第04节：彩色与圆
> **GESP等级：一级 | 考级考点：GESP Python 一级**


| 项目 | 内容 |
|------|------|
| 课程名称 | 彩色与圆 |
| 课程时长 | 60分钟 |
| GESP考点 | #6画笔控制（color/pensize/circle） |
| 核心工具 | Python turtle模块 |
| 配套文件 | `04_彩色与圆.py` / `随堂练习_第04节.md` / `课后练习_第04节.md` |
| 前置基础 | 已掌握 forward/right 组合画正方形 |

---

## 一、GESP 知识映射表

| GESP 一级考点 | 大纲编号 | 本关对应教学环节 | 身体锚点 | 达标标准 |
|-------------|---------|----------------|---------|---------|
| **画笔颜色控制** | 1.2.3 | `t.color("red")` 颜色名+引号，换5种颜色自由探索 | 彩色笔=彩色笔尖 | 能写出 `t.color("颜色名")`，知道颜色名必须加引号 |
| **画笔粗细控制** | 1.2.3 | `t.pensize(N)` 对比实验1/5/10并排三条线 | "N越大笔越粗" | 能说出 pensize(1)最细、pensize(10)最粗，数字越大线越粗 |
| **画圆命令** | 1.2.3 | `t.circle(半径)` 半径越大圆越大，自由探索半径 | 伸臂转圈=circle、手臂长度=半径 | 能用 circle(半径)画出指定大小的圆，理解半径越大圆越大 |
| **程序顺序执行** | 1.1.1 | 颜色→粗细→圆→跳→再画，每个命令依次生效 | "一行一行来" | 理解 color→pensize→circle 的顺序不可乱 |
| **函数调用方式** | 1.1.3 | color/pensize/circle/penup/pendown 全部沿用 `t.xxx(值)` 格式 | "t.命令(数字)" 固定套路 | 能写出多种命令的完整调用格式 |
| **简单程序调试** | 1.3.1 | 颜色名忘加引号→NameError，pensize 太大→线条成方块 | "红字=乌龟在帮你找错" | 看到报错能找出行号和问题所在 |

---

## 二、教学目标

### 2.1 知识目标（下课后孩子能回答）

- 说出换颜色的命令是 `t.color("颜色名")`，颜色名必须加引号
- 说出粗细命令是 `t.pensize(数字)`，数字越大线越粗
- 说出画圆命令是 `t.circle(半径)`，半径越大圆越大
- 说出至少 5 种 Python 认识的颜色英文名
- 理解"画完圆后乌龟自动回到圆心"

### 2.2 技能目标（下课后孩子能做到）

- 独立用 `t.color("red")` 换颜色并成功画出彩色线条
- 用 `t.color()` + `t.pensize()` + `t.forward()` 组合画出不同颜色不同粗细的线段
- 用 `t.circle(半径)` 画出指定大小的圆
- 用不同颜色画一大一小两个圆
- 用 penup/pendown 结合画彩色靶心（同心圆不同色）
- 在代码文件中正确填入颜色名和半径数字

### 2.3 情感目标

- "代码能控制颜色和形状"——编程表达力进一步增强
- "原来英文颜色名就是代码"——英语单词和编程的自然结合
- "圆只要一行代码就画出来了"——感受代码的简洁与威力
- "我画的图形从黑白变成彩色了"——成就感从"画出来"升级为"画得好"

---

## 三、教学准备

### 3.1 教师准备

| 物品 | 用途 | 备注 |
|------|------|------|
| 投影/大屏幕 | 展示代码和运行效果 | 提前打开 `04_彩色与圆.py` |
| 彩色粉笔/马克笔 | 板书颜色速查表 | 红/蓝/绿/黄/橙/紫/粉/黑/白/棕 10色 |
| 色卡纸（可选） | 颜色大乱斗环节举色卡 | 红色/蓝色/绿色/黄色/橙色各一张 |
| 计时器 | 控制每个环节节奏 | 尤其知识点阶段（20分钟）需控制节奏 |
| `04_彩色与圆.py` | 每个孩子电脑上已准备好 | 内含全部演示代码和注释 |
| 尺子（可选） | 演示圆的半径vs直径 | 让孩子量屏幕上的圆 |

### 3.2 学生准备

- 已参加第1-3节，会打开 `.py` 文件、按 F5 运行
- 熟练掌握 `import turtle` / `t = turtle.Turtle()` / `t.shape("turtle")` 三行模板
- 熟练掌握 `t.forward(数字)` / `t.right(数字)` 用法
- 每人一台电脑，IDLE 或 Mu 编辑器已打开

### 3.3 配套代码文件：`04_彩色与圆.py`

课前确认每个孩子的 `04_彩色与圆.py` 文件存在且内容完整。文件结构：

```python
"""
彩色与圆 —— 乌龟变彩虹
GESP考点：画笔控制(#6) color/pensize/circle
"""

import turtle

# ============================================================
# 【一】t.color("red") —— 给小乌龟彩色笔！
# ============================================================

t = turtle.Turtle()
t.shape("turtle")
t.speed(3)

t.color("red")           # 换红色笔！
t.forward(100)

t.color("blue")          # 换蓝色笔！
t.forward(100)

t.color("green")         # 换绿色笔！
t.forward(100)

# ============================================================
# 【二】t.pensize(5) —— 换一支粗笔！
# ============================================================

t.penup()
t.goto(-200, -50)
t.pendown()
t.color("black")

t.pensize(1)
t.forward(100)

t.pensize(5)
t.forward(100)

t.pensize(10)
t.forward(100)

# ============================================================
# 【三】t.circle(半径) —— 画圆！
# ============================================================

t.penup()
t.goto(0, -100)
t.pendown()
t.color("orange")
t.pensize(3)
t.circle(50)

t.penup()
t.goto(0, -200)
t.pendown()
t.color("purple")
t.circle(100)

t.penup()
t.goto(0, -50)
t.pendown()
t.color("pink")
t.circle(25)

t.hideturtle()
turtle.done()
```

---

## 四、教学节奏（60分钟5段式）

### 时间总览

```
0min ────────────────────────────────────────────────────────── 60min
│          │          │          │          │          │          │
│  0-10    │ 10-30    │ 30-40    │ 40-55    │ 55-60    │
│ 导入     │ 知识点   │ 演示     │ 实操     │ 小测     │
│ 展示纯   │ ①color  │ 逐段演   │ ①换5种  │ 抢答+    │
│ 线条画→ │ ②pensize│ 示+跟敲  │ 颜色画线 │ 纠错     │
│ "能不能  │ ③circle │ blue→蓝  │ ②一大一  │          │
│ 给乌龟   │          │ 线→粗线  │ 小两个圆 │          │
│ 彩笔？"  │          │ 并排→    │ ③彩色靶 │          │
│          │          │ circle画 │ 心同心圆 │          │
│          │          │ 圆       │          │          │
└──────────┴──────────┴──────────┴──────────┴──────────┘
```

---

### 阶段一：导入（00:00-10:00）——展示纯线条画，"能不能给乌龟彩笔？"

#### 0-3分钟：回顾第04节——黑白正方形

**老师站在教室前面，用身体动作引导回忆：**

> "上节课我们画了什么？" → **"正方形！"**
> "画一个正方形需要几个 forward？几个 right？" → **"4个forward + 4个right = 8行！"**
> "你们还记得那个正方形是什么颜色的吗？" → **"黑色..."**（或者默认颜色）

**展示一张纯黑色的正方形和线条画（投影）：**

> "我们的乌龟全程都用一支黑笔画画——就像你画画只有一支黑笔。"
> "今天，我们要给乌龟一整套彩色笔！"

#### 3-6分钟：展示彩色成品图——制造"渴望"

**老师投影展示提前准备好的彩色图形**（可以直接运行 `04_彩色与圆.py` 给孩子看）：

> （运行代码，屏幕上出现红、蓝、绿三条彩色线，然后黑笔不同粗细的三条线，最后是彩色圆）
> "哇——乌龟变成彩色了！"
> "你们想不想让你的乌龟也能画出彩色？"
> 全班："想——！！！"

**揭示本课三大魔法：**

> 老师竖起三根手指：
> "今天三个魔法："
> 1. **彩色笔** —— 想画什么颜色就画什么颜色
> 2. **粗笔+细笔** —— 让线条变胖变瘦
> 3. **画圆** —— 乌龟原地转一圈就能画出完美的圆

#### 6-10分钟：打开文件 + 复习三行模板

> "打开 `04_彩色与圆.py` —— 就是桌面上的那个文件。文件已经准备好了！"

**巡视检查：** 确认每个孩子都成功打开文件。

> "大家看看文件的前几行——是不是很熟悉？"
> "import turtle —— 念咒语"
> "t = turtle.Turtle() —— 起名字"
> "t.shape('turtle') —— 变乌龟"
> "这三行跟上节课一模一样，照抄就行。"

> "今天的所有实验都在这一个文件里，按顺序往下敲。准备好了吗？开始！"

---

### 阶段二：知识点讲解（10:00-30:00）—— 三大魔法逐一揭秘

#### 知识点①：t.color("red")——引号必须加！（10:00-17:00，7分钟）

**记忆钩子：** `:.2f` 的冒号 = "我要控制格式了！" —— 而 `color` 的引号 = "我要控制颜色了！"

##### 10-12分钟：引入——发现引号（老师演示+全班跟敲）

> "老师先做一个实验——我不加引号，直接写 `t.color(red)`，猜猜会发生什么？"

**故意犯错演示（投影或口头说明，不建议让孩子敲错代码）：**

> 老师敲 `t.color(red)` → F5 → 红色报错 `NameError: name 'red' is not defined`
>
> "Python 说：我不认识 red。它把 red 当成一个变量名去找，找不到就报错！"
> "red 这个名字要穿**引号衣服**——`"red"`——Python 才知道：哦，这是一个颜色名字，不是代码！"

**板书（大字，留在黑板右上角整节课）：**

```
t.color("red")   ✅ 正确——颜色名穿引号衣服
t.color(red)     ❌ 报错——名字没穿衣服
```

##### 12-15分钟：换3种颜色——红、蓝、绿

**老师指令：**

> "现在在文件里找到 `t.color("red")` 这一行——注意看，引号已经加好了！"
> "保存，F5 跑一下！"

> 屏幕上出现一条红色直线。

> "看到了吗？红色！乌龟用的是红笔！"
> "现在把 `"red"` 改成 `"blue"`，保存，F5！"

> 屏幕上出现一条蓝色直线。

> "再改成 `"green"`，保存，F5！"

> 屏幕上出现一条绿色直线。

> "三条线——红、蓝、绿！乌龟有彩色笔了！"

**关键追问：**
> "你们发现没有？我每改一次颜色名，线就换一个颜色。"
> "颜色名写对了，乌龟就用那个颜色的笔画画。"
> "什么颜色的线都行，只要——" → 全班：**"颜色名要加引号！"**

##### 15-17分钟：颜色大探索——自由试 5 种颜色

> "现在给你们 2 分钟自由探索时间——把 `"red"` 换成别的颜色，随便试！看看 Python 认识哪些颜色。"

**老师在黑板上写参考颜色表：**

```
🐢 Python 认识的常用颜色（10+种）：
red  blue  green  yellow  orange  purple
pink  black  white  brown  cyan  gold  gray
```

**孩子们自由试颜色**，老师巡视，重点关注：

- 有没有孩子没加引号？（`t.color(red)` → 报错 → "名字要穿引号衣服！"）
- 有没有孩子拼错颜色名？（`gren` / `purole` / `blu` → 指黑板："对照上面，哪个字母不一样？"）
- 有没有孩子忘记 F5？（"敲完就按 F5，不跑不知道效果！"）

> "试试 `"gold"`——惊喜不惊喜？金色也有！"
> "试试 `"cyan"`——这是什么颜色？青蓝色！"

---

#### 知识点②：t.pensize(N)——N越大线越粗（17:00-23:00，6分钟）

**记忆钩子：** pensize(N) = pen(笔) + size(大小)，N 就是"笔的胖瘦开关"。

##### 17-19分钟：粗细对比实验——三条线并排

> "现在所有的线都一样细。我们来让乌龟长出'粗笔头'和'细笔头'——就像你画画用细铅笔和粗马克笔。"

**老师指令：**

> 找到文件里 `# 【二】t.pensize(5) —— 换一支粗笔！` 这一部分。
> 看这几行代码：

```python
t.pensize(1)             # 最细的笔
t.forward(100)

t.pensize(5)             # 中等
t.forward(100)

t.pensize(10)            # 最粗
t.forward(100)
```

> "运行这一部分——注意看，F5！"

**屏幕上出现三条并排的黑色线条：**
- 第1条：细得像铅笔尖（pensize=1）
- 第2条：中等粗（pensize=5）
- 第3条：粗得像马克笔（pensize=10）

> "一眼就看出区别了吧？不需要老师解释，你的眼睛已经告诉你了——"
> "pensize(1) 像什么笔？" → **"圆珠笔/铅笔"**
> "pensize(5) 像什么？" → **"水彩笔/记号笔"**
> "pensize(10) 像什么？" → **"马克笔/粗头笔"**

##### 19-21分钟：粗细猜猜看 + 极限实验

**粗细猜猜看游戏：**

> "老师比划动作，你们猜 pensize 是几！"

老师用拇指和食指比划：
- 捏在一起（极细）→ 全班抢答："1！"
- 张开两指宽 → "5！" 或 "8！"
- 张开手掌宽 → "10！"

**极限实验：**

> "试试 pensize(20) 会怎么样？pensize(50) 呢？"

孩子试 → 线粗到糊成一片 → 全班大笑。

> "50 太胖了，都看不出是线了。pensize 在 1 到 10 之间最合适。但你可以试任何数字——试试 pensize(100) 也行，看看乌龟变成什么样子！"

##### 21-23分钟：灵魂一问

> "数字越大，线越____？" → 全班齐声：**粗！**
> "数字越小，线越____？" → 全班齐声：**细！**
> "pensize(1) 和 pensize(10)，哪个更像你铅笔盒里的马克笔？" → "10！"

**关键记忆句（全班齐声朗读一遍）：**

> "pensize(数字) = 笔的粗细。数字越大，笔越胖！"

---

#### 知识点③：t.circle(半径)——半径越大圆越大（23:00-30:00，7分钟）

**记忆钩子 + 身体锚点：** 伸臂转圈 = circle，手臂长度 = 半径。

##### 23-25分钟：第一个圆——一行代码搞定

> "画正方形我们写了 8 行代码——手累不累？"
> "现在乌龟学会了一个新招——原地转圈就能画出完美的圆！"
> "一行代码，一个圆。比正方形省了 7 行！"

**老师指令：**

> 找到文件里 `# 【三】t.circle(半径) —— 画圆！` 这一部分。
> 找到 `t.circle(50)` 这一行，先只运行这一部分。

> F5 → 屏幕上出现一个漂亮的圆！

> "不用一步步转，一行 `t.circle(50)` 就画好了！圆不圆？"
> "50 是什么？——半径！从圆心到圆边的距离。"

**板书：**

```
t.circle(半径)
半径 = 圆心到圆边的距离
半径越大 → 圆越大
画完圆，乌龟自动回到圆心 ❗
```

##### 25-27分钟：半径大探索

> "现在我们来改这个数字——把 50 改成 100，F5！"

> 屏幕上出现一个更大的圆。

> "再改成 20，F5！"

> 屏幕上出现一个小圆。

> "再改成 200，F5！"

> 圆大到屏幕快装不下了。

> "再改成 5，F5！"

> 圆小到像一个点。

> "你们发现规律了吗？数字越大——" → 全班：**"圆越大！"**

**推动探索深度：**

> "试试 circle(300) —— 大过屏幕！"
> "试试 circle(9999) —— 你只能看到一条弧线！"

##### 27-28分钟：圆 vs 正方形——代码量对比

老师在黑板上并列展示：

```
画正方形（8行）：              画圆（1行）：
t.forward(100)                t.circle(80)
t.right(90)
t.forward(100)                ← 圆只要 1 行！
t.right(90)                     比正方形省了 7 行！
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
```

> "乌龟是不是偏心？正方形要写 8 行，圆只要 1 行。"
> "但正方形你可以控制每条边不同长——圆不行，圆永远是完美的。"

##### 28-30分钟：身体锚点——伸臂转圈

**老师站到教室中间，伸出一只手臂，原地转一圈。**

> "我的手臂就是半径！手臂伸直越长——画的圆越大！"
> "circle(50) 就是乌龟的手臂只有 50 那么长。"
> "circle(200) 就是手臂 200 那么长——比教室还大！"

**让一个孩子上来也做一遍：**

> "你手臂多长？你画的圆多大？"
> 孩子伸臂转一圈。

> "全班起立——跟老师一起做！"
> "伸开手臂转一圈——这就是 circle！"
> "手臂收短一点再转一圈——这就是 circle(小半径)！"

**全班一起做 2 遍，身体记忆锁定。**

---

### 阶段三：演示（30:00-40:00）—— color + pensize + circle 组合演示

#### 30-33分钟：演示一——color("blue") 蓝线 + 不同粗细

**老师说一句，孩子敲一句，每句 F5：**

> "现在我们来学一个组合技巧：先换颜色，再画线——这样就能画出彩色的线！"

**逐步演示：**

| 步骤 | 老师说什么 | 孩子做什么 | F5看到什么 |
|------|-----------|-----------|-----------|
| 1 | "先写 `t.color("blue")` —— 换蓝笔" | 在文件末尾新空行上敲 | 还没画，看不出效果 |
| 2 | "再写 `t.forward(100)` —— 画一条蓝线" | 敲 `t.forward(100)` | 一条蓝色线段出现！ |
| 3 | "先换颜色再画线——这就是规律" | 全班观察确认 | 蓝色线段 |

> "看到没有？先 `color` 告诉乌龟'用红笔'，再 `forward` 画出来——顺序不能乱！"

#### 33-36分钟：演示二——pensize(1)/(5)/(10) 并排对比

**老师指令：**

> "在刚才的蓝线下面，我们来画三条不同粗细的线，让它们并排站在一起！"

**逐行敲，逐行F5：**

```python
# 换红色
t.color("red")
t.pensize(1)
t.forward(80)

# 跳过去，三条线并排
t.penup()
t.forward(30)
t.pendown()

# 换蓝色，中等粗
t.color("blue")
t.pensize(5)
t.forward(80)

# 再跳
t.penup()
t.forward(30)
t.pendown()

# 换绿色，最粗
t.color("green")
t.pensize(10)
t.forward(80)
```

> F5 → 屏幕上出现三条并排的彩色线：红色细线、蓝色中粗线、绿色粗线。

> "一眼看穿粗细的区别！数字 1 最细，5 中等，10 最粗。"

**关键追问：**
> "pensize(1) 配红色，好看吗？"
> "pensize(10) 配绿色，像不像粗绿笔？"
> "颜色和粗细可以自由搭配——这就是编程的创造力！"

#### 36-40分钟：演示三——circle(50) 画彩色圆

**老师指令：**

> "最后，我们来画一个彩色的圆！"

```python
# 画一个红色的圆
t.color("red")
t.pensize(3)
t.circle(50)

# 画一个蓝色的更大的圆
t.penup()
t.goto(0, -150)          # 往下挪，别重叠
t.pendown()
t.color("blue")
t.circle(100)
```

> F5 → 屏幕上出现一个红色圆和一个蓝色大圆。

**灵魂四问（快速抢答）：**

1. "color('red') 和 color('blue') 分别把笔换成了什么颜色？" → 红色、蓝色
2. "circle(50) 和 circle(100)，哪个圆更大？" → circle(100)
3. "画圆之前为什么要先写 color？" → 因为顺序执行，先换色再画才能画出彩色
4. "如果先 circle 再 color，圆是彩色的吗？" → 不是！先画出来再换色，画好了的颜色不改了

> **"敲黑板：顺序很重要！先 color→再 pensize→再画（forward 或 circle）！"**

---

### 阶段四：实操练习（40:00-55:00）——自己动手试

> **实操原则：** 不给完整代码，给填空模板或引导提示。老师巡视指导，先让孩子自己试，遇到问题再引导。

#### 练习一：换5种颜色画线（40:00-45:00，5分钟）

**场景引入：**

> "现在轮到你了！用 `t.color()` 换 5 种不同的颜色，画 5 条不同颜色的线。"
> "每条线往前走 80 步，线之间用 penup/forward/pendown 跳开。"
> "颜色从黑板上的颜色表里选——不能重复！"

**要求：**
1. 5 条线段，5 种不同颜色
2. 每条线长度 80
3. 线之间用 penup/forward(30)/pendown 隔开
4. 粗细自选，`pensize(3)` 左右即可

**参考代码（占不投影，孩子自己写）：**

```python
# 第1条：红色
t.color("red")
t.forward(80)

t.penup()
t.forward(30)
t.pendown()

# 第2条：蓝色
t.color("blue")
t.forward(80)

# ... 继续写剩下的3条
```

**巡视检查：**
- 颜色名有没有加引号？
- 颜色名有没有拼错？
- 有没有忘记 pendown？
- 5 条线颜色是否有重复？

**完成标准：** 屏幕上出现 5 条不同颜色的并排线段。

#### 练习二：画一大一小两个圆（45:00-50:00，5分钟）

**场景引入：**

> "现在我们来画两个圆——一个大圆、一个小圆，颜色不同！"
> "大圆半径 100，小圆半径 40。"
> "两个圆不能叠在一起——用 penup/goto 跳开。"

**引导思路（不给完整代码，口头引导）：**

1. 先画大圆：`t.color("红色")` → `t.circle(100)`
2. penup → goto 跳到右边 → pendown
3. 再画小圆：`t.color("蓝色")` → `t.circle(40)`

**代码填空（投影）：**

```python
# ===== 大圆 =====
t.color("______")      # 选一种颜色
t.pensize(3)
t.circle(______)       # 半径100

# ===== 跳过去 =====
t.penup()
t.goto(______, ______)  # 跳到右边，不和大圆重叠（提示：x坐标加250）
t.pendown()

# ===== 小圆 =====
t.color("______")      # 选另一种颜色
t.circle(______)       # 半径40
```

**预期效果：** 屏幕上左右各一个圆，左边大圆一种颜色，右边小圆另一种颜色。

**完成标准：** 两个圆独立不重叠，颜色不同，一大一小。

**挑战升级（学有余力）：** 再加一个中号圆，半径 70，三个圆排成一排。

#### 练习三：彩色靶心——同心圆不同色（50:00-55:00，5分钟）

**场景引入：**

> "最后一个挑战——画一个彩色靶心！"
> "三个同心圆从外到内：大圆红色、中圆蓝色、小圆黄色。"
> "就像射箭的靶子一样！"

**关键弯道思考（老师提问，全班讨论30秒）：**

> "画完第一个大圆之后，乌龟站在哪里？" → **圆心！**
> "所以画中圆需要 penup 跳走吗？" → **不需要！乌龟就在圆心！**
> "那中圆不跳，和小圆不跳——三个圆心都一样？" → **对！同心圆就是同一个圆心！**

**代码填空（投影）：**

```python
# ===== 彩色靶心：三个同心圆 =====
t.pensize(4)

# 最外层大圆（半径120，红色）
t.color("red")
t.circle(______)       # 半径120

# 中间圆（半径80，蓝色）—— 乌龟还在圆心！直接画！
t.color("blue")
t.circle(______)       # 半径80

# 最内层小圆（半径40，黄色）—— 还是圆心！
t.color("yellow")
t.circle(______)       # 半径40
```

**预期效果：** 屏幕中央出现红、蓝、黄三个嵌套的同心圆，像一个彩色靶心。

**巡视检查：**
- 有没有孩子在圆之间写了 penup/goto？（不需要！画完圆乌龟自动回圆心）
- 三个圆是否从大到小排列（120→80→40）
- 是否有孩子把半径顺序搞反了（先画小圆再画大圆 → 大圆把小圆盖住了）

**关键认知确认：**

> "画完第一个圆（半径120），乌龟站在哪？" → **圆心！**
> "画完第二个圆（半径80），乌龟站在哪？" → **还是圆心！**
> "所以只要一直画下去，所有圆都是同一个圆心——这就是'同心圆'！"

---

### 阶段五：小测验（55:00-60:00）——抢答 + 纠错

#### 5.1 快问快答（55:00-58:00）

**老师提问，全班抢答，比谁喊得快：**

| 题号 | 问题 | 答案 |
|------|------|------|
| 1 | 换颜色的命令是什么？ | `t.color("颜色名")` |
| 2 | 颜色名要不要加引号？ | **要！！！** |
| 3 | 不加引号会怎样？ | NameError：找不到这个名字 |
| 4 | 换粗细的命令叫什么？ | `t.pensize(数字)` |
| 5 | pensize(1) 和 pensize(10) 哪个更粗？ | pensize(10) |
| 6 | 画圆的命令叫什么？ | `t.circle(半径)` |
| 7 | circle 里的数字越大，圆越____？ | 大 |
| 8 | 画完圆，乌龟站在哪里？ | 圆心 |
| 9 | 先 color 还是先 circle？ | 先 color，再 circle |
| 10 | 为什么颜色名要加引号？ | 因为是文字（字符串）不是代码，要穿"引号衣服" |

**重点问题重复三遍：**

> "color 括号里要不要加引号？" → 全班：**"要！！！"**
> "再问一遍：color 括号里要不要加引号？" → **"要！！！"**
> "大声喊第三遍：color 括号里要不要加引号？" → **"要！！！"**

#### 5.2 纠错挑战（58:00-60:00）

> "下面这段代码有 4 个错误，看谁能全部找出来！"

**投影展示错误代码：**

```python
import turtle
t = turtle.Turtle()
t.pensize(10)
t.color(red)         # 错误1：？
t.circle(50)
t.color(blue)        # 错误2：？
t.circle(100)
t.pensize(5)         # 错误3：？
t.forward(100)
t.circle(-50)        # 错误4：？
```

**师生互动找错：**

| 行号 | 错误 | 正确写法 | 原因 |
|------|------|---------|------|
| 4 | `t.color(red)` 没加引号 | `t.color("red")` | 颜色名要穿引号衣服 |
| 6 | `t.color(blue)` 没加引号 | `t.color("blue")` | 同上了 |
| 8 | `t.pensize(5)` 放在 circle 之后 | 应放在 forward 之前 | 顺序执行，先设粗细再画线 |
| 10 | `t.circle(-50)` 负数半径 | `t.circle(50)` | 负数画在下面，和预想不同 |

> "最后这个 circle(-50) 和 circle(50) 有什么不同？"
> "circle(正数) = 向上画圆，circle(负数) = 向下画圆。这不是错误，但和你预想的不一样。"

#### 5.3 课堂总结（最后1分钟）

**老师带领全班回顾三大魔法：**

> "举起三根手指，跟我一起念——"
> 1. "`t.color('颜色名')`——换颜色！"
> 2. "`t.pensize(数字)`——换粗细！数字越大线越粗！"
> 3. "`t.circle(半径)`——画圆！半径越大圆越大！"

**最后一问：**

> "颜色名外面为什么要加什么？" → 全班齐喊：**"引号！！！"**

> "很好！记住——颜色名要穿引号衣服。不加引号，Python 不认识。下课！记得保存你的 `04_彩色与圆.py` 文件！"

---

## 五、身体锚点速查

| 身体记忆 | 对应代码 | 本关唤醒时机 | 老师动作 |
|---------|---------|------------|---------|
| 伸臂转圈 | `t.circle(半径)` | 引入 circle 知识点时 | 老师站教室中间，伸开一只手臂原地转一圈 |
| 手臂长度=半径 | circle 的半径大小 | 半径大小对比时 | "手臂伸直（大笑）→ 手臂弯一点（小圆）" |
| 笔的胖瘦 | `t.pensize(N)` | 粗细对比实验时 | 拇指食指捏一起（细）、张开（粗） |
| 彩色笔 | `t.color("red")` | 换颜色演示时 | 举起对应颜色的粉笔或马克笔 |

---

## 六、记忆钩子

| 容易忘 | 钩子 | 使用时机 |
|--------|------|---------|
| 颜色名要加引号 | **"颜色名要穿引号衣服！"** `"red"` ✅ vs `red` ❌ | 每次写 color 时 |
| pensize 数字越大线越粗 | **"数字=笔的胖瘦"** 1=铅笔尖，10=马克笔 | pensize 教学时 |
| circle 半径=圆心到边的距离 | **"伸开手臂转圈——手臂=半径"** 手臂越长圆越大 | circle 教学时 |
| 画完圆乌龟还在圆心 | **"乌龟转完圈，回到老地方"** | 画同心圆前 |
| 先 color 再画图 | **"先换笔再画画"** 顺序乱了效果就变了 | 实操演示时 |
| 冒号=我要控制格式了 | **`:.2f` 的冒号**——虽然今天没讲格式化，但为后续讲 format 埋下认知钩子：冒号=控制开关 | 板书时顺带一提 |

---

## 七、易错点速查（老师口袋版）

| 易错点 | 错误表现 | 根因 | 课堂对策 |
|--------|---------|------|---------|
| 颜色名没加引号 | `t.color(red)` → NameError | 忘记字符串要引号包裹 | "颜色名要穿引号衣服！`"red"` √，`red` ×" |
| 颜色名拼错 | `t.color("gren")` → 报错或没效果 | 英文单词不熟 | 指着黑板颜色表："对照着抄，哪个字母不一样？" |
| pensize 写太大 | `t.pensize(100)` → 线变成方块 | 好奇"特别大"的效果 | **不阻止**，让他试出来，自己就收敛了 |
| circle 半径太大 | `t.circle(9999)` → 只看到弧线 | 同上 | 让他试，溢出屏幕比说一百遍有效 |
| 先画再 color | 画出来是默认黑色 | 忘记了顺序执行 | "你先画再换笔，换晚了！顺序：color → circle" |
| 画圆后忘了乌龟在圆心 | 画同心圆前去 penup/goto | 不理解 circle 的返回位置 | "画完圆乌龟自己回圆心——不信你试试" |
| penup 后忘了 pendown | 后面画不出来 | 抬笔状态持续生效 | "你的笔还抬着呢！加一行 `t.pendown()`" |
| 中文全角引号 | `t.color("red")` → SyntaxError | 输入法没切换 | "胖的是中文引号，瘦的是英文引号。代码只吃瘦的。" |

---

## 八、板书规划（整节课保留）

```
┌─────────────────────────────────────────────────────┐
│  🐢 第04节：彩色与圆                                  │
│                                                      │
│  📐 三大魔法：                                       │
│  1. t.color("颜色名")   ← 颜色名要加引号！！！      │
│  2. t.pensize(数字)     ← 数字越大线越粗             │
│  3. t.circle(半径)      ← 半径越大圆越大             │
│                                                      │
│  🎨 颜色速查表：                                     │
│  red blue green yellow orange purple                  │
│  pink black white brown cyan gold gray               │
│                                                      │
│  ⭐ 特殊知识：                                       │
│  画完圆 → 乌龟自动回到圆心                           │
│  先color → 再pensize → 再画线                        │
│                                                      │
│  ⚠️ 全班齐答三遍：                                   │
│  "color括号里要不要加引号？要！！！"                  │
└─────────────────────────────────────────────────────┘
```

---

## 九、课堂巡视检查清单

### 9.1 知识点阶段（10:00-30:00）检查

- [ ] 每个孩子都能成功运行 `t.color("red")` 画出红线？
- [ ] 有没有孩子加了引号但还是报错？（检查是否用了中文引号 `""`）
- [ ] 每个孩子都试了至少 3 种不同颜色？
- [ ] pensize 对比实验三条线都成功显示？
- [ ] circle(50) 画出来了吗？circle(100) 呢？

### 9.2 演示阶段（30:00-40:00）检查

- [ ] 每个孩子都看到蓝线了吗？
- [ ] 并排三条粗细线颜色区分清楚吗？
- [ ] 彩色圆成功画出来了吗？
- [ ] 有没有孩子把 color 写在 circle 后面？

### 9.3 实操阶段（40:00-55:00）检查

- [ ] 练习一：5 条颜色各异的线都画出来了吗？
- [ ] 练习二：一大一小两个圆成功分离了吗？
- [ ] 练习三：三个同心圆嵌套成功了吗？
- [ ] 有没有孩子不理解"画完圆回圆心"而在圆之间加了 penup？

### 9.4 时间弹性策略

| 如果时间紧（进度慢） | 如果时间松（进度快） |
|-------------------|-------------------|
| 练习一改为3种颜色（不要求5种） | 练习三后加挑战：4个同心圆，半径递减 |
| 练习三改为选做，口头讲思路 | 加练——彩色正方形（每条边不同颜色） |
| 小测改为3个核心问题，不逐题抢答 | 小测加"看代码说效果"环节 |

---

## 十、课后扩展建议（选做）

1. **颜色英文单词卡：** 把 12 种颜色做成卡片，课后玩"举卡片→敲代码"游戏
2. **半径测量实验：** 用尺子量屏幕上 circle(50) 的半径是不是真的 50 像素——建立"代码数字 = 屏幕距离"的映射感
3. **彩色签名：** 用本节课学的 color + pensize + forward/backward 写自己的英文名缩写（每个字母不同颜色）
4. **预习第04节：** 想一想——如果用颜色+圆+正方形，你能画出什么作品？

---

## 十一、文件关联

```
01_小乌龟学走路/第04节_彩色与圆/
├── 教案_第04节_彩色与圆.md      ← 本文件
├── 04_彩色与圆.py               ← 本关核心代码文件
├── 随堂练习_第04节.md            ← 课堂练习册（含5道填空题+实验记录）
├── 课后练习_第04节.md            ← 课后练习卡
```

---

> **教学后记：** 本节从黑白线条跨越到彩色图形，是孩子编程自信心的第二次飞跃（第一次是本阶段前几节画完正方形）。color 命令的引号问题是本关最高频错误——但也是最有价值的错误，因为"引号=字符串"这个认知会在后续所有代码中反复出现。circle 命令是"一行代码的威力"的最佳展示——对比画正方形的 8 行代码，孩子会直观感受到"同样画出漂亮的图形，有的命令更聪明"。这个对比在为后续的 for 循环继续铺垫"代码可以更简洁"的认知。
