第三单元 开启 Python 小宝箱
第二节 学用 random 模块
学习目标
1.掌握 random 模块的基本用法。
2.能使用 randint 方法生成随机数。
3.能使用 choice 方法从数列中随机取值。
教材分析
重点
掌握 random 模块的基本用法。
难点
能使用 randint 方法生成随机数。
教学准备
教学课件、多媒体教学系统
教学环节及内容 师生活动情况
引入新课 讲授新课
一、了解常用外
部模块
二、了解random 模块
三、 拓展练习
四、 随机取值
五、 随机抽取同学姓名
六、操作练习
七、拓展阅读
八、编写简单猜数游戏
九、拓展练习
十、拓展延伸
课堂小结 教师讲解:经过之前的学习,我们已经学会了Python 编程语言
中最常用的语句与函数。其实这些语句与函数如同“胶水”,
而今天老师给大家介绍里面的“积木”。
教师讲解:利用 Python 编程,我们可以用胶水将积木组合成各种东西,所以学习如何使用各种各样的模块很重要,下面老师给大家简单介绍一下这些“积木”,Python 中常用的模块如下图所示。
学生认真听教师讲解,并讨论交流,自己都会用哪些?
教师讲解:这么多模块中我们之前只知道turle 海龟绘图,但我们今后的学习重点是学会模块的用法,下面我们就来学习 random 模块,random 模块通常也被称为“随机模块”。
任务一:
同学们通过小组合作自主学习课本 55-56 页,试操作如何使用 random 模块?
任务完成后请小组展示并讲解自己的操作过程。
同学们在观看过程中发现,每次手工执行代码很麻烦,所以有小组成员提出为代码加上循环语句,循环执行几次看看效果
任务二:
教师提出练习操作,要求完成以下操作练习:
1.如果 randint 方法的下限或上限取值是负整数,会出现什么结果?
2.如果 randint 方法的下限或上限取值是小数,会出现什么情况?说明了什么?
3.如果 randint 方法的下限为 0,上限为1,最终生成的随机数会是什么结果?说明了什么?
4.使用随机数可以在 turtle 模块中随机生成海龟的坐标值,请使用 turtle 模块,画一幅随机“星空图”。
练习结束后请各小组展示自己的练习成果,教师及时给予评价。
教师讲解: random 模块另外一个常用方法是 choice,这个方法的作用是从数据列中随机取出一个数据。我们使用 choice 方法,从“野火烧不尽春风吹又生”这串字符中,随机取 10 次,看每次会取出哪个字符。
任务三:
请同学们按照老师的讲解,小组合作,探究完成随机取值的代码编写。
教师提问:刚才我们学习了如何随机取值的方法,那如果在课堂上,老师有时想随机抽出某位同学来回答问题,你能用自己所学的知识,写出“随机抽取同学”的小程序吗?
有同学思考后回答:全班 40 位同学都有学号,我可以使用 random 模块的 randint(1,40)方法,随机产生一个学号,学号对应的就是被抽出的同学。并演示自己所写的代码及运行效果。
教师提出疑问:同学们利用学号来编写的代码编写得不错。但使用学号不太直观,你们能想办法直接抽出同学的姓名吗?
教师提示:我们可以使用 random 模块的 choice“随机取值”方法,取出一位同学的姓名来。
任务四:
请同学们小组合作,完成随机抽取同学姓名的代码编写并运行效果。
教师随机抽取展示,并及时评价。
教师补充:以上代码中的同学姓名列表,为什么要用英文引号与逗号将每个同学的名字分隔开呢?那是因为choice 方法是从一列数据中随机抽取一个,如果不分隔开,那每次就只能随机取出一个字,取不出同学的名字。
而且使用 choice 方法时,同学们的名字必须是一个“列表”关于什么是“列表”,我们会在今后详细学习。
任务五:
同学们通过我们学习过 turtle 绘图模块,turtle 模块有一个 bgpic(“图片名”)属性,能在turtle 绘图窗口中显示照片。我们可将全班同学的照片收集起来,然后随机选出一张,将其显示在 turtle 绘图窗口中。这样,会比显示学号与姓名更为直观、方便。以下是“随机抽取照片”的代码,同学们可在老师的帮助下收集全班照片,试试编写代码。
学生操作后展示运行效果,并及时评价。
教师补充讲解:运行本代码时,照片与程序要放在同级目录下。如果要将照片放在另.外的目录下,则最末一行代码要写为: Tbgpic('目录路径" +被抽照片)。此外,图片要使用 png 或 gif 格式。
教师要求:random 模块的 shuffle 方法,就像洗扑克牌一样,可将数据列中数据的顺序随机打乱。
任务六:
请同学们小组合作参照老师的演示操作编写随机打乱数据顺序的代码,并运行。
随机抽取学生展示自己编写的代码并展示运行效果,教师及时给予评价。
教师讲解:应用 random 模块最典型的例子,是编写“猜数游戏”,程序产生 0 到 100 之间的随机数让我们猜,我们输入所猜的数,程序判断猜大了或者是猜小了,并将判断结果显示给我们,让我们继续猜,直到猜中为止。
现在你能运用已有知识编写出这个程序来吗?在正式编写代码之前,我们可以先使用中文,编写出整个猜数游戏的“伪代码”,然后再将“伪代码”改写为真正的Python 程序代码。
任务七:
请同学们分组探究,参照课本 61-62 页了解什么是“伪代码”?并写出“猜数游戏伪代码”。
学生展示自己所写“猜数游戏伪代码”,教师及时评价。
1.引入随机模块
2.用随机模块生成一个随机教
3.输入我们所猜的数
4.比较随机数与我们输入的数
(1 )如果猜大了,给出提示“猜大了”
(2) 如果猜小了,给出提示“猜小了”
(3)返回上面 3,重新输入所猜的效
(4) 如果猜对了,给出提示“猜对了”并跳出循环
5.结束游戏
教师补充:同一个编程项目,往往可以使用不同的编程语言来实现。不同的编程语言有差异,使用某一种语言的程序员,可能看不懂使用另一种语言编写的代码。为让所有人都能读懂代码,程序员们开始在自己编写的代码中添加“伪代码”。所谓伪代码,就是使用自然语言(比如中文、英文等),将自己解决问题的整个思路(算法)按步骤记下来。这样,无论其他人使用的是什么编程语言,都能理解自己的编程思路。“伪代码”用来描述程序执行过程,它本身不属于任何编程语言。有经验的程序员在编写代码之前,往往会用“伪代码”来规划、验算自己的解决思路与程序逻辑。优秀的伪代码,应该能让不会编程的人,也能读懂整个程序的思路与逻辑。
教师讲解:了解了“伪代码”,同学们能根据自己的伪代码编写出 Python 程序了吗?
任务八:
请同学们根据自己所写的“伪代码”,写出猜数字游戏Python 程序。
教师请同学们展示自己写的代码并展示运行效果。
教师要求:
请同学们阅读下面的代码,为每行代码添加上注释,看看自己能不能在没有任何提示的情况下,理清代码运行的逻辑?
学生思考:运行上图所示的代码时,如果我们最后输入的是除 y 之外的任何字符,会发生什么情况呢?学生小组交流探究找出答案,教师及时给予评价。
拓展任务:
请同学们编写与电脑玩“石头剪子布”的小游戏,想想看应该使用什么模块、如何编写,并写出自己的“伪代码”。然后,请阅读下面的代码,想想每行代码的意思
通过本课的学习我们学会了random 模块的基本用法,能使用randint 方法生成随机数和使用choice 方法从数列中随机取值。
拓展性运用(知识生成、拓展提高、规律总结、知识框架、板书)
第三单元 开启 Python 小宝箱 第二节 学用 random 模块
一、random 模块的基本用法
二、randint 生成随机数
三、choice 随机取值
作业 思考:机器是如何学习的呢?未来人工智能会超越人类吗?请谈谈你的看法。
反思