(共22张PPT)
第三单元
开启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
编写简单猜数游戏
任务描述2:将“伪代码”改写为真正的Python程序代码。
执行程序,运行效果如图:
05
编写简单猜数游戏
练习:将下图中的代码书写在编辑器中,执行程序查看运行结果,然后为每行代码添加上注释,看看自己能不能理清代码运行的逻辑?
05
编写简单猜数游戏
代码运行效果如右图:
思考:运行代码时,如果我们最后输人的是除y之外的任何字符,会发生什么情况呢?
——while重复执行条件不满足,结束重复执行命令。
05
编写简单猜数游戏
编程任务:编写一个与电脑玩“石头剪子布”的小游戏,电脑随机出拳与用户出拳进行比较,判断胜负结果。
程序书写及执行结果如图所示:
阅读思考
20
人与机器下围棋
随着人工智能技术的发展,人们不仅能够在网络上互相围棋对战,机器也可以成为人下围棋的对手,阿尔法围棋(
AlphaGo)就是第一个击败人类职业围棋选手的智能机器人。
阿尔法围棋采用了“深度学习”“神经网络”
等人工智能技术,通过对60余万张围棋棋谱的研究与分析,生成了对弈策略。在与人对弈时,它首先用智能搜索树找出多个落子位置,然后使用神经网络生成的对弈策略,对这些落子位置进行评估,从而找到最佳落子位置,并最终击败人类棋手。
阿尔法围棋是人工智能在日常生活中成功应用的典型,充分展示了人工智能技术的潜力和价值。
思考:机器是如何学习的呢?未来人工智能会超越人类吗?请谈谈你的看法。
课堂总结
学用random模块
了解常用外部模块
随机抽取同学姓名
了解random模块
随机取值
外部模块很多、常用的也不少、我们先了解一下它们的作用
掌握random模块的基本用法、能使用randint方法生成随机数
能使用choice方法从数列中随机取值
掌握Randint、choice、shuffle这几种方法的使用
编写简单猜数游戏
掌握“伪代码”的编写
并转换为Python程序代码
THANKS(共15张PPT)
第三单元
开启python小宝箱
Section
2
Learning
random
module
第2节
学习random模块
课堂导入
2
上一节课我们学习了怎样用Python语言编写判断密码正误的小程序。
这节课我们就将用到“神秘奖品”的其中一个模块:random模块。
最后我们还同欢欢一起打开了里面的
“神秘宝箱”,查看了里面的“神秘奖品”
——
Python常用模块。
1.掌握random模块的基本用法。
2.能使用randint方法生成随机数。
3.能使用choice方法从数列中随机取值。
学习目标
1.
了解常用外部模块
2.
了解random模块
3.
随机取值
课程目录
4.
随机抽取同学姓名
5.
编写简单猜数游戏
01
了解常用外部模块
01
了解常用外部模块
5
经过前面的学习,我们已经学会了Python编程语言中最常用的语句与函数。
下面我们就来介绍一下python中最常见的模块。
模块名
用处简介
turtle
海龟绘图,绘制各种图画
random
随机模块,生成随机数等
os
对文件与目录进行各种操作
re
支持各种正则表达式
time
提供对时间的控制与操作
pillow
对图片进行操作
tkinter
为Python语言提供图形界面
thread
提供多线程编程的支持
socket
网络通信、网络编程
模块名
用处简介
NumPy
提供多维度的各种计算方法
pandas
提供数据的各种统计方法
math
提供各种数学运算方法
pytorch
人工智能与机器学习模块
TensorFlow
谷歌的人工智能与机器学习模块
urllib
网络访问模块,可编写爬虫
BeautifulSoup
在网页源代码中抓取信息
openCV
机器视觉、图像处理、人脸识别
matplotilb
生成各种统计图以及地图等等
turtle:
01
了解常用外部模块
time:
Tkinter:
math:
openCV:
7
02
了解random模块
02
了解random模块
random模块通常也被称为“随机模块”。下表中列出了
random模块最常用的三个方法。
方法
格式
说明
randint
randint(开始数,结束数)
在开始数到结束数之间,随机生成一个整数
choice
choice(数据列)
随机从数据列中抽取一个数据
shufle
shuffle(数据列)
随机打乱数据列中数据的顺序
02
了解random模块
例程1:使用random模块生成0
–
100的随机数。
连续执行5次代码,得到运行结果。如图:
02
了解random模块
例程2:增加循环语句,使用random模块生成8个0
–
100的随机数。
执行代码,得到运行结果。如图:
11
拓展练习
1.如果randint方法的下限或上限取值是负整数,会出现什么情况?
2.如果randint方法的下限或上限取值是小数,会出现什么情况?说明了什么?
3.如果randint方法的下限为0,上限为1,
最终生成的随机数会是什么结果?说明了什么?
4.使用随机数可以在turtle模块中随机生成海龟的坐标值,请使用turtle模块,画一幅随机“星空图”。
提示:画圆函数:circle(x)
#
x
:
半径(数值)
坐标函数:goto(x,y)
#x,y:横纵坐标(数值)
03
随机取值
12
03
随机取值
random模块另外一个常用方法是choice(),这个方法的作用是从数据列中随机取出一个数据。
例程3:从“野火烧不尽春风吹又生”这串字符中,随机取10次,看每次会取出哪个字符。代码如下图所示:
14
运行效果如下图所示:
03
随机取值
THANKS