跳到主要内容

第 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() 学生还不需要下标;把重点放在「从列表里挑一个」上。

要带这节课吗?请查看 教师与图书馆员指南 ,里面有上课流程、常见错误,以及一个不用电脑的备用活动。

这节课完成了吗?标记为已完成,解锁下一周。