(
课件网) 第三单元 开启python小宝箱 Section 2 Learning random module 第2节 学习random模块 04 随机抽取同学姓名 04 随机抽取同学姓名 在课堂上,老师有时想随机抽出某位同学来回答问题。你们能用自己所学的知识,写出“随机抽取同学”的小程序吗? 方法1:假设全班有40人,并且40位同学都有对应学号,即可以使用random模块的randint()方法,从1 - 40随机产生一个学号,学号对应的就是被抽出的同学。代码如下图: 04 随机抽取同学姓名 程序执行3次,运行效果如下图所示: 04 随机抽取同学姓名 在课堂上,老师有时想随机抽出某位同学来回答问题。你们能用自己所学的知识,写出“随机抽取同学”的小程序吗? 方法2:建立变量“同学名列表”存储同学名 ,在使用random模块的choice()方法,从中取值。代码如下图: 04 随机抽取同学姓名 程序执行3次,运行效果如下图所示: 04 随机抽取同学姓名 小提示:文本类型的数据需要用引号(英文状态下的“”),数据之间用逗号隔开,整体数据用中括号括起来。 choice()方法是从一列数据中(列表)随机抽取一个,如果不分隔开,那每次就只能随机抽取出一个字。 列表:最常用的Python数据类型,可将一堆数据项构成一个数据整体,数据项可为不同的类型。 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。 实例:list1 = ['physics', 'chemistry', 1997, 2000] 04 随机抽取同学姓名 在turtle 模块有一个bgpic(‘图片名’)属性,能在turtle绘图窗口中显示照片。因此可将全班同学的照片收集起来,然后随机选出一张,将其显示在turtle绘图窗口中。这样,会比显示学号与姓名更为直观、方便。 任务要求:从网络获取2 – 4张人像图片,通过点名的方式随机抽取照片。 程序设计如图所示: 04 随机抽取同学姓名 程序运行效果如下图所示: 04 随机抽取同学姓名 注意:同学们在运行本代码时,照片与程序要放在同级目录下。 如果将照片放在另外的目录下,则最末一行代码要写为: T.bgpic( '目录路径/’+被抽照片)。此外,图片要使用png或gif格式。 11 拓展练习 random模块的shuffle方法,就像洗扑克牌一样,可以将数据列表中数据的顺序随机打乱,请同学们编写如下图中所示的代码,运行一下看看效果如何。 示例程序: 运行效果如图: 05 编写简单猜数游戏 05 编写简单猜数游戏 应用random模块最典型的例子是编写“猜数游戏”:程序产生0到100之间的随机数让我们猜,我们输入所猜的数,程序判断猜大了或者是猜小了,并将判断结果显示给我们,让我们继续猜,直到猜中为止。 提示:在正式编写代码之前,通常我们可以先使用中文,编写出整个猜数游戏的“伪代码”(程序逻辑结构梳理),然后再将“伪代码”改写为真正的Python程序代码。 05 编写简单猜数游戏 现在我们来了解一下什么是“伪代码”? 所谓伪代码,就是使用自然语言(比如中文、英文等),将自己解决问题的整个思路( 算法)按步骤记下来。这样,无论其他人使用的是什么编程语言,都能理解自己的编程思路。 “伪代码”用来描述程序执行过程,它本身不属于任何编程语言。有经验的程序员在编写代码之前,往往会用“伪代码”来规划、验算自己的解决思路与程序逻辑。优秀的伪代码,应该能让不会编程的人,也能读懂整个程序的思路与逻辑。 05 编写简单猜数游戏 任务描述1:请编写出“猜数游戏伪代码”。 1.引入随机模块 2.用随机模块生成一个随机数 3.输入我们所猜的数 4.比较随机数与我们输入的数 (1)如果猜大了,给出提示“猜大了” (2)如果猜小了,给出提示“猜小了” (3)返回上面3,重新输入所猜的数 (4)如果猜对了,给出提示“猜对了”并跳出循环 5.结束游戏 05 编写简单 ... ...