第 4 课:🧙 仙人指路
🎯 学习目标
- 掌握 for 循环 和 range() 函数
- 深入理解 f-string 格式化
- 了解 continue 关键字
- 实现 NPC 互动问答和完整冒险循环
📚 家长预习指南(5 分钟)
本课核心要点
for i in range(3):— "重复做 3 次",像 Scratch 的"重复执行 N 次"range(3)生成 0, 1, 2 三个数- for 是"固定次数的循环",while 是"直到条件终止的循环"
- NPC = 非玩家角色(仙人、书生等),用 if 判断谜语答案
常见问题
range(3)从 0 开始 → 生成 0, 1, 2(不包含 3)- for 和 while 什么时候用哪个 → "知道重复几次用 for,不知道用 while"
您的角色
🟢 领航员 → 观察孩子是否能独立写 3 行以上代码(过渡信号)
过渡观察
到本课结束时,如果孩子能独立写出 3 行以上的正确代码,下一课可以开始过渡到 🟡 副驾驶模式。
🔗 Scratch ↔ Python 对照
| Scratch 积木 | Python 代码 | 说明 |
|---|---|---|
| 重复执行 N 次 | for i in range(N): |
精确执行 N 次 |
| 计数器 | for i in range(3): 中的 i |
i 自动变成 0, 1, 2 |
🧠 知识桥梁:"还记得 Scratch 里'重复 3 次'积木吗?Python 的
for i in range(3)就是一样的——让电脑重复做 3 次!"
📖 活动模块
模块 A — for 的力量(15 分钟)
目标
用 for + range 实现"每条路线 3 次遭遇"的循环
- 对比 while 和 for:
- while:"不知道重复几次,直到条件不成立"
-
for:"知道重复几次,精确控制"
-
练习 for 循环:
for i in range(3):
print(f"第 {i + 1} 次遭遇...")
- 引入 random.choice():
encounter_type = random.choice(["妖怪", "仙人"])
print(f"遇到了{encounter_type}!")
模块 B — 仙人问答(20 分钟)
目标
实现 NPC 互动——仙人出谜语
npc_name = "白胡老者"
riddle = "什么东西越长越短?"
answer = "蜡烛"
print(f"\n🧙 一位{npc_name}出现在面前!")
print(f""{npc_name}微笑着说:'{riddle}'"")
player_answer = input("你的答案是:")
if player_answer == answer:
reward = 15
print(f"✨ 答对了!{npc_name}赏你 {reward} 银两!")
else:
reward = 3
print(f"😊 答错了,不过{npc_name}见你诚恳,赏你 {reward} 银两。")
silver = silver + reward
模块 C — 完整冒险(10 分钟)
目标
将路线→3 次遭遇→结算串联成完整循环
for i in range(3):
encounter = random.choice(["妖怪", "仙人"])
if encounter == "妖怪":
# ... 战斗逻辑
else:
# ... 仙人问答逻辑
🎮 运行游戏:第一次体验完整冒险循环——选路线→3 次遭遇→展示数据!
🤖 AI 环节(家长演示→过渡)
阶段
🟢→🟡 过渡 — 家长可以开始让孩子参与提问
任务
让 AI 出几道适合四年级孩子的谜语
示例提示词
出 4 道简单的中国传统谜语,每道给出谜面和答案,难度适合四年级小学生。
✅ 最小完成目标
- [ ] 使用 for + range 实现 3 次遭遇循环
- [ ] 实现 NPC 问答(问谜语、判断答案)
- [ ] 完成一次完整冒险循环(选路线→3 次遭遇→展示数据)
⭐ 扩展挑战
- 用
random.choice()随机决定遇到妖怪还是仙人 - 不同路线有不同难度的妖怪
- 用 continue 跳过无效遭遇
🐛 常见错误提示
| 错误 | 原因 | 解决 |
|---|---|---|
TypeError |
range() 参数不是整数 | 确保 range() 里是数字 |
| for 只执行了一次 | 循环体忘了缩进 | 检查 for 下面的代码是否都缩进了 |