第 7 周,共 8 周
列表与随机
程序开始变得不可预测。学生把几个值存进列表,并用 random.choice() 随机挑出一个,于是程序每次运行都会做点不一样的事。他们会做一个短小的冒险游戏,路线和奖品每次都不同——也第一次遇到 import,因为现在他们真的需要它了。
- 预计时间
- 60 分钟
- 项目
- 随机冒险游戏
核心思路
列表把多个值装进一个变量里,写在方括号中。random.choice() 会伸进列表里随机抓出一个元素,让程序能给玩家惊喜。要用 random,先在最上面写 import random 把它引进来——这是你第一次需要一个不是内置的工具。列表加上随机,正是让游戏每次玩起来都不一样的原因。
你将学到什么
- 创建一个列表,并从中读取元素。
- 用 random.choice() 从列表里随机取一个元素。
- 解释为什么 import random 必须写在最前面。
- 修好一个用了 random 却没有导入它的程序。
新词汇
- 列表
- 方括号里一组有顺序的值,比如 ["a", "b", "c"]。
- 元素
- 列表里存的其中一个值。
- import
- 引入 Python 默认不加载的额外工具,比如 random 模块。
- random.choice()
- 从列表里随机挑出一个元素。
项目:随机冒险游戏
编辑下面的初始代码,然后按“运行”看看效果。想回到原始代码,随时点“重置初始代码”。
main.py
终端
运行你的程序来查看输出。
预期输出
你走进了一个安静的山洞。
在尽头,你找到了一张旧地图。小挑战
再加第三个列表,装上玩家一路上遇到的角色,随机挑一个,并打印一句关于他的话。
调试挑战
Python 说 random 未定义。这个程序用了 random.choice(),但 random 是一个必须先引进来的工具。最上面该加哪一行?
有错误的代码
paths = ["一片黑森林", "一个安静的山洞"]
path = random.choice(paths)
print(path)查看答案隐藏答案
在最上面把 random 工具引进来:
import random拓展挑战
在开头用 input() 问玩家的名字,然后把它用进这个随机故事里,让冒险感觉是属于他的。
回顾思考
两个玩家运行同一个程序,却得到不同的故事。这为什么会让一个游戏更值得反复玩?
教师笔记
因为输出是随机的,「预期输出」只是其中一种可能——每次运行都会不同,而这正是重点。反复强调 import 要写在最上面。列表的下标从 0 开始,但用 random.choice() 学生还不需要下标;把重点放在「从列表里挑一个」上。
要带这节课吗?请查看 教师与图书馆员指南 ,里面有上课流程、常见错误,以及一个不用电脑的备用活动。
这节课完成了吗?标记为已完成,解锁下一周。