# 第11节教案 —— print语法 + 转义字符（60分钟·GESP #27）
> **GESP等级：一级 | 考级考点：GESP Python 一级**


> **GESP 考点**：#27 print 输出语法、转义字符（\n、\t、\\）、逗号拼接
> **教学形式**：turtle场景导入（0-10min）→ 知识点讲解（10-30min）→ 上机演示（30-40min）→ 实操练习（40-55min）→ 收尾小测（55-60min）
> **时长**：60 分钟（完整一节）| **对应文件**：`第11节_print语法.py`、`课堂练习册_第11节_print语法.md`、`课后练习卡_第11节_print语法.md`
> **核心定位**：print 输出地基课——每个孩子必须掌握 print 的五种用法，能熟练使用转义字符控制输出格式。

---

## GESP 知识映射

| GESP-1 考点 | 本节对应 | 身体锚点 |
|------------|---------|---------|
| #27 print 输出 | print() 把信息"照"到控制台，就像手电筒照亮秘密 | 双手圈在嘴边📢 喊出来！ |
| #27 字符串输出 | print("文字")——内容穿引号才会被当作文字 | 双手比引号🙌 穿引号！ |
| #27 数字输出 | print(数字)——光膀子数字直接写 | 拍拍胳膊💪 光膀子！ |
| #27 变量输出 | print(变量名)——直接把变量值输出来 | 指指脑袋🧠 直接用！ |
| #27 逗号拼接 | print(1, 2, 3)——逗号隔开，空格连接 | 手指点三下👉👉👉 逗号隔开！ |
| #27 转义字符 | \n 换行、\t 制表符、\\ 输出反斜杠 | \n 手肘下压↘️ 换行；\t 四指并拢🤚 制表 |

---

## 教学目标

孩子下课后能：

- **用 print 输出 3 种内容**：文字（加引号）、数字（不加引号）、变量（直接写变量名）
- **用逗号拼接多个内容**：`print("a", "b", "c")` 输出 `a b c`
- **用 `\n` 换行**：理解 `\n` 不是一个字符而是"换行指令"
- **用 `\t` 制表对齐**：知道 `\t` 跳到下一个制表位，用于列对齐
- **输出反斜杠 `\\`**：知道反斜杠是转义符，输出它需要写两个
- **用 print 调试程序**：理解 `print(t.xcor())` 可以在控制台看到坐标值
- **独立完成填空补全 print、预测转义字符输出、设计个人信息卡**

---

## 教学节奏总览

| 时间段 | 时长 | 阶段 | 核心内容 | 身体锚点 | 关键记忆句 |
|--------|------|------|---------|---------|-----------|
| 0-10min | 10min | 导入：turtle日记本 | print 把 turtle 的坐标、颜色、角度输出到控制台 | 对着控制台喊"秘密被照出来啦！" | "print 像手电筒——把程序里的秘密照到屏幕上" |
| 10-30min | 20min | 知识点讲解 | ①print("文字")穿引号 ②print(数字)光膀子 ③print(变量)直接用 ④逗号拼接 ⑤\n \t \\ | 五个知识点配五个动作 | "文字穿引号 数字光膀子 变量直接用\n换行\t制表" |
| 30-40min | 10min | 上机演示 | print(t.xcor()) 调试坐标；print(f"x:{t.xcor()}") 格式化显示 | 老师敲代码，学生猜输出 | "print 是调试神器——把程序运行中的秘密全照出来" |
| 40-55min | 15min | 实操练习 | ①填空补全print ②预测\n\t输出 ③用print设计个人信息卡 | 同桌互改，对照答案 | "做print的主人——想让它在哪停它就在哪停" |
| 55-60min | 5min | 收尾小测 | "\n的作用是？"全班齐答+齐读记忆口诀 | 手肘下压↘️ | "\n 换行！" |

> **节奏逻辑**：具象turtle（0-10min）→ 抽象讲解（10-30min）→ 半具象演示（30-40min）→ 应用练习（40-55min）→ 记忆强化（55-60min）

---

## 课前准备

### 讲台道具清单
- **6张知识点卡**（A4卡纸，正反面）：print("文字") / print(数字) / print(变量) / 逗号拼接 / \n换行 / \t制表
- **3张输出结果卡**：`\n`示例卡（第1行↓第2行）/ `\t`示例卡（左→右跳格）/ `\\`示例卡（一个斜杠）
- **1张大型记忆钩子海报**：**"文字穿引号 数字光膀子 变量直接用\n换行\t制表"**
- **一支马克笔**、**磁贴或透明胶**（贴黑板用）

### 黑板/白板布局
- **正中顶部**：大字标题 **📢 print语法 + 转义字符**
- **左侧 1/3**：print 5种用法（文字/数字/变量/逗号/转义）
- **中央 1/3**：代码演示区（print 的各种用法示例）
- **右侧 1/3**：\n \t \\ 对比区 + 预测题

### 学生电脑环境
- 每台电脑已开机，Python/Thonny 已打开
- 桌面放置 `第11节_print语法.py`

### 其他材料
- **课堂练习纸**：每人一张（含3道题），课前放座位右上角
- **课后练习卡**：`课后练习卡_第11节_print语法.md` 打印版，下课时发放

---

## 教学流程

### 阶段一：导入——小乌龟的日记本：print把秘密照出来（0-10min）

> **目标**：通过turtle画画过程中的"看不见的值"，引出 print 的调试作用——把程序运行中的秘密照到控制台

**步骤 1：turtle 在动，但秘密藏在背后（3min）**

- 老师打开演示代码，展示一段 turtle 画画，但不加 print——学生只能看到 turtle 在动，看不到坐标、角度变化
- 老师说："小乌龟心里在想什么？——它的坐标是多少？方向是多少？颜色是什么？这些都是秘密！"
- "怎么把秘密照出来？用 **print**！"

```python
import turtle
t = turtle.Turtle()
t.shape("turtle")

t.forward(100)
t.left(90)
t.forward(50)

# 小乌龟的秘密：现在它的坐标是多少？方向是多少？
# 运行程序只能看到画画，看不到这些"内心想法"
```

**步骤 2：用 print 照出秘密（4min）**

- 老师加上 print 语句，让学生看控制台输出

```python
t.forward(100)
print("小乌龟的x坐标：", t.xcor())    # 把x坐标照出来！
print("小乌龟的y坐标：", t.ycor())    # 把y坐标照出来！
print("小乌龟的方向：", t.heading())  # 把方向照出来！
```

- 每执行一个 print，学生看到控制台出现一行信息
- "print 就像手电筒🔦 ——把 turtle 心里藏着的秘密全都照到屏幕上！"
- **记忆句**："print 是照妖镜——把秘密照出来！"

**步骤 3：引出今天要学的 5 个知识点（3min）**

- 老师说："要学好 print 这个手电筒，我们需要学会 5 个小技巧——"
- 一边说一边在黑板上写出记忆钩子：

```
文字穿引号     → print("你好")
数字光膀子     → print(123)
变量直接用     → print(x)
逗号来拼接     → print("x=", x)
\n换行\t制表   → 控制输出格式
```

- 全班跟读一遍记忆钩子
- "这节课结束的时候，每个人都能用 print 把自己想说的话输出到屏幕上！"

---

### 阶段二：知识点讲解（10-30min）

> **目标**：系统讲解 print 的 5 种用法 + 3 个常用转义字符

#### 知识点①：print("文字")——穿引号（4min）

**板书**：
```
print("文字")
特征：   文字用引号包着（单引号或双引号都可以）
例子：   print("hello")     → hello
         print("你好吗？")  → 你好吗？
         print('单引号')    → 单引号
```

- **核心规则**：文字必须穿引号！不穿引号 Python 会以为它是变量名
- 演示错误：`print(你好)` → 报错！因为没有引号，Python 以为"你好"是变量名
- 身体动作：双手在耳边比引号🙌 齐喊 **"穿引号！"**

**互动：老师举例子，学生判断对不对**
- `print("你好")` → ✅ 正确，穿了引号
- `print(你好)` → ❌ 错误，没穿引号
- `print('hello')` → ✅ 正确，单引号也是引号

#### 知识点②：print(数字)——光膀子（3min）

**板书**：
```
print(数字)
特征：   数字直接写，不加引号
例子：   print(6)       → 6
         print(3.14)    → 3.14
         print(100 + 200) → 300（先算加法再输出）
```

- **核心规则**：数字裸着写——没有引号！加了引号就变成文字了
- 对比演示：
  - `print(6 + 6)` → 12（数字加法）
  - `print("6" + "6")` → 66（字符串拼接）
- 身体动作：拍拍胳膊💪 齐喊 **"光膀子！"**

**记忆钩子衔接**："还记得上节课学的吗？文字穿引号 → str，数字光膀子 → int/float！"

#### 知识点③：print(变量名)——直接用（3min）

**板书**：
```
print(变量名)
特征：   变量名直接写，不加引号
例子：   name = "小明"
         print(name)    → 小明（输出变量name里存的值）
         print("name")  → name（输出字母n-a-m-e，不是变量值！）
```

- **核心区别**：
  - `print(name)` → 输出变量 name 里的值（"小明"）
  - `print("name")` → 输出文字 "name"（字母 n-a-m-e）
- 身体动作：指指自己的头🧠 齐喊 **"直接用！"**

**经典对比**（写在黑板醒目位置）：
```
print(name)      ← 变量名，输出变量的值
print("name")    ← 字符串，输出字母 name
```

#### 知识点④：逗号拼接（4min）

**板书**：
```
print(值1, 值2, 值3)
特征：   逗号把多个内容隔开，输出时自动用空格连接
例子：   print("x=", 100)         → x= 100
         print(1, 2, 3, 4, 5)     → 1 2 3 4 5
         print("名字:", "小明", "年龄:", 10)  → 名字: 小明 年龄: 10
```

- **核心规则**：逗号分隔的多个值，输出时中间自动加一个空格
- "逗号就像排队列——每个人站一个位置，中间空一格"
- 逗号可以混搭不同类型的值：str、int、float、变量——都行！
- 身体动作：手指点三下👉👉👉 **"逗号隔开！"**

**互动**：
- `print(1, 2)` 的输出是什么？→ `1 2`
- `print("结果:", 6 + 6)` 的输出是什么？→ `结果: 12`
- `print("a", "b", "c")` 的输出是什么？→ `a b c`

#### 知识点⑤：转义字符——\n 换行、\t 制表、\\ 输出反斜杠（6min）

> 这部分需要花最多时间，因为转义字符是全新的概念

**引入**：

"有时候我们想让输出换个行、对齐一下、或者输出一个反斜杠——但键盘直接敲不行。Python 用 **反斜杠** 作为'魔法开关'——它后面跟的字母有特殊含义！"

**知识点⑤-a：\n 换行（2min）**

**板书**：
```
\n = 换行
特征：   写在字符串里，输出时会"啪"地换一行
例子：   print("第一行\n第二行") → 第一行
                                   第二行
```

- **身体动作**：手肘向下压↘️ 齐喊 **"换行！"**
- 重点是展示：`\n` 不是一个字符 n，它是一个"换行指令"
- 对比：
  - `print("abc\ndef")` → 换行输出
  - `print("abc\\ndef")` → 输出 `abc\ndef`（因为 `\\` 是反斜杠，n 就是普通 n）

**知识点⑤-b：\t 制表符（2min）**

**板书**：
```
\t = 制表符（Tab）
特征：   跳到下一个制表位，相当于按了 Tab 键
        一般每 8 个字符一个制表位
例子：   print("a\tb") → a       b（中间跳格）
         print("1\t2\t3") → 1       2       3
```

- **身体动作**：四指并拢向前推🤚 齐喊 **"制表！"**
- 展示制表符的对齐效果：做表格式输出

```python
print("姓名\t年龄\t班级")
print("小明\t10\t501")
print("小红\t11\t502")
# 输出对齐的表格！
```

**知识点⑤-c：\\ 输出反斜杠（2min）**

**板书**：
```
\\ = 输出一个反斜杠
特征：   因为反斜杠本身是"魔法开关"，想输出它必须写两个
例子：   print("\\") → \
         print("C:\\Users\\小明") → C:\Users\小明
```

- **核心规则**：反斜杠是转义符号，要输出真正的反斜杠必须写两个
- "第一个反斜杠说'准备转义'，第二个说'转义成我自己'"
- 身体动作：右手写一个斜杠，再写一个斜杠，两手交叉✖️ **"双倍反斜杠！"**

**三个转义字符对比总结**：

```
\n   换行    ↘️  手肘下压
\t   制表    🤚  四指并拢
\\   反斜杠  ✖️  双倍输出
```

#### 知识点梳理 + 记忆钩子（2min）

**全班起立，带动作齐读两遍**：

```
文字穿引号  🙌  双手比引号
数字光膀子  💪  拍拍胳膊
变量直接用  🧠  指指脑袋
逗号来拼接  👉  👉  👉  手指点三下
\n 换行     ↘️  手肘下压
\t 制表     🤚  四指并拢
\\ 反斜杠   ✖️  双倍斜杠
```

---

### 阶段三：上机演示——print 调试神器（30-40min）

> **目标**：通过 turtle 实时演示，让学生看到 print 在调试中的作用

**演示 1：用 print 偷看 turtle 的坐标（4min）**

```python
import turtle
t = turtle.Turtle()
t.speed(3)

t.forward(100)
print("当前位置 x:", t.xcor(), "y:", t.ycor())  # 输出坐标

t.left(90)
t.forward(50)
print("移动后 x:", t.xcor(), "y:", t.ycor())    # 坐标变了！

t.left(90)
t.forward(100)
print("最后 x:", t.xcor(), "y:", t.ycor())
```

- 每走一步，print 把当前坐标输出到控制台
- "没有 print 的话，我们只能看到 turtle 在动，看不到具体的数值"
- **关键句**："print 是调试神器——把程序运行中的秘密全照出来！"

**演示 2：用 print 看 turtle 的方向和颜色（3min）**

```python
t.setheading(45)
print("当前方向:", t.heading(), "度")

t.color("red")
print("当前颜色:", t.pencolor())

print("画笔状态: 按下?", t.isdown())
```

- 用逗号拼接，输出多种信息
- 展示 print 在调试中的价值

**演示 3：print 转义字符展示（3min）**

```python
print("=== 转义字符展示 ===\n")
print("姓名\t年龄\t班级")
print("小明\t10\t501")
print("小红\t11\t502")
print("\n文件路径: C:\\Users\\小明\\Documents")
print("反斜杠展示: \\n 是换行, \\t 是制表")
```

- 逐行运行，让学生预测每一行的输出
- \n 展示换行、\t 展示对齐、\\ 展示反斜杠

---

### 阶段四：实操练习（40-55min）

> **目标**：三道练习题，巩固 print 和转义字符的使用

**练习 1：填空补全 print（5min）**

补全下面的代码，让程序输出正确的值：

```python
# ① 输出文字"你好，Python！"
print(________)    # 应该输出：你好，Python！

# ② 输出数字 2024
print(________)    # 应该输出：2024

# ③ 输出变量 name 的值
name = "小乌龟"
print(________)    # 应该输出：小乌龟

# ④ 用一条 print 输出 1 2 3 4 5（中间空格）
print(________)    # 应该输出：1 2 3 4 5

# ⑤ 输出两行文字（用换行）
print("第1行________第2行")  # 应该输出两行
```

答案：
```python
# ① print("你好，Python！")
# ② print(2024)
# ③ print(name)
# ④ print(1, 2, 3, 4, 5)
# ⑤ print("第1行\n第2行")
```

**练习 2：预测 \n \t 输出（5min）**

不运行代码，写出下面每条 print 的输出：

```python
# 题目A
print("Hello\nWorld")
# 输出：
# ______
# ______

# 题目B
print("a\tb\tc")
# 输出：____________________

# 题目C
print("C:\\Users\\小明")
# 输出：____________________

# 题目D
print("1\n2\t3")
# 输出：
# ______
# ______
```

答案：
```
A: Hello
   World

B: a    b    c

C: C:\Users\小明

D: 1
   2   3
```

**练习 3：用 print 设计个人信息卡（5min）**

用 print 输出一张自我介绍卡片，包含：
1. 姓名（字符串）
2. 年龄（整数）
3. 身高（浮点数）
4. 喜欢的科目（字符串）
5. 用 \n 控制换行
6. 用 \t 让信息对齐

参考格式：
```
========================
      我的个人信息
========================
姓名    年龄    身高    喜欢的科目
小明    10      1.45    编程
小红    11      1.52    美术
========================
```

**讲评（5min）**
- 老师逐题讲解
- 练习 1 重点：文字加引号、数字不加引号、变量直接写
- 练习 2 重点：\n 换行、\t 制表位、\\ 输出一个反斜杠
- 练习 3 重点：综合运用逗号拼接、\n 换行、\t 制表

---

### 阶段五：收尾小测 + 记忆钩子强化（55-60min）

**小测问题**（全班起立，举手回答）：

> **"\\n 的作用是什么？"**

参考答案：
- `\n` 是换行符——在字符串里写 `\n`，输出时会换到下一行
- 例：`print("第1行\n第2行")` 输出两行
- 身体动作：手肘下压↘️

**全班齐读记忆钩子（2遍，带动作）**：

```
文字穿引号  🙌  双手比引号
数字光膀子  💪  拍拍胳膊
变量直接用  🧠  指指脑袋
逗号来拼接  👉  👉  👉  手指点三下

\n 换行     ↘️  手肘下压
\t 制表     🤚  四指并拢
\\ 反斜杠   ✖️  双倍斜杠
```

**布置课后练习卡**
- 发放 `课后练习卡_第11节_print语法.md` 打印版
- 预告下一节："下节课我们学格式化输出——用 %s 和 f-string 让输出更漂亮！"

---

## 板书设计（终版）

```
╔══════════════════════════════════════════════════════════════════════╗
║           📢 print语法 + 转义字符                                  ║
╠════════════════════╦══════════════════════╦═════════════════════════╣
║  用法 + 记忆钩子    ║  代码               ║  转义字符               ║
║                    ║                     ║                         ║
║  ① print("文字")   ║  print("hello")     ║  \n 换行     ↘️         ║
║     穿引号 🙌       ║  print(你好) ❌报错  ║  \t 制表     🤚         ║
║                    ║                     ║  \\ 反斜杠   ✖️         ║
║  ② print(数字)     ║  print(6)           ║                         ║
║     光膀子 💪       ║  print(3.14)        ║  预测题：               ║
║                    ║                     ║  print("a\nb\tc")       ║
║  ③ print(变量)     ║  name="小明"        ║  → ?                    ║
║     直接用 🧠       ║  print(name)        ║                         ║
║                    ║                     ║  输出：                 ║
║  ④ 逗号拼接        ║  print(1, 2, 3)     ║  a                     ║
║     👉👉👉 隔开     ║  → 1 2 3           ║  b    c                 ║
╠════════════════════╩══════════════════════╩═════════════════════════╣
║  记忆钩子：文字穿引号 数字光膀子 变量直接用  逗号拼接空格连          ║
║  \n换行 \t制表 \\输出反斜杠                                         ║
║  print 是调试神器——把秘密照出来！                                     ║
╚══════════════════════════════════════════════════════════════════════╝
```

---

## 差异化教学

| 学生类型 | 表现 | 应对策略 |
|---------|------|---------|
| 快进型 | 练习做得快，开始分心 | 额外挑战：用 print 和转义字符输出一个"日历"或"课表"——用 \t 对齐、\n 换行，自己设计布局 |
| 慢热型 | 分不清 print(name) 和 print("name") | 用实物演示：拿一个盒子上贴标签"name"，里面放纸写"小明"——print(name) 打开盒子拿里面的纸，print("name") 只读标签上的字母 |
| 概念混淆型 | 搞不清 \n 是两个字符还是一个"换行指令" | 在黑板写 "abc\ndef" 然后数一数里面有"几个字符"——\n 虽然写了两个符号，但在 Python 眼里它是一个"换行指令"（一个字符） |

---

## 课后反思（教师填写）

| 项目 | 评价 | 备注 |
|------|:----:|------|
| 教学目标达成度 | /5 | |
| 学生参与度 | /5 | |
| 时间把控 | /5 | |
| 需改进点 | | |
