7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)

2024-08-19
| 33页
| 160人阅读
| 42人下载
普通

内容正文:

第7章 常用库的使用 1 学习目标/Target 掌握random库的使用,能够使用random库生成随机数 掌握turtle库的使用,能够使用turtle库绘制不同图形 掌握time库的使用,能够使用time库处理时间 掌握jieba库的使用,能够使用jieba库对中文文本实现分词 掌握WordCloud库的使用,能够使用WordCloud库制作词云图 2 章节概述/ Summary 在Python中,库(Library)是一种涵盖了特定功能集合的说法,而非严格定义。Python库提供了大量的函数或方法,可以帮助开发人员更有效地解决各种任务和问题,从而更轻松地开发程序。Python中的库通常分为两种类型,分别是标准库(Standard Library)和第三方库(Third-Party Library),其中标准库会随Python解释器一同被安装,导入程序后直接使用,包括random、turtle、time等;第三方库是由Python使用者编写和分享的,使用前需要额外安装,比如jieba、wordcloud等。本章将介绍一些常用库的基本用法。 3 目录/Contents 01 随机数工具:random库 实例:验证码 绘图工具:turtle库 02 03 实例:绘制几何图形 04 时期时间工具:time库 05 4 目录/Contents 06 实例:二十四节气倒计时 中文分词工具:jieba库 实例:出场人物统计 07 08 词云工具:WordCloud库 09 实例:生成词云图 10 5 随机数工具:random库 7.1 6 7.1 随机数工具:random库 random库是Python标准库中的一部分,它提供了一系列的随机数生成函数,可以用于生成随机数和随机序列等。 函数 功能说明 random() 用于生成一个随机浮点数n,n的取值范围是0<=n<1.0 uniform(a,b) 用于生成一个指定范围内的随机浮点数n,若a<b,则n的取值范围是a<=n<=b;若a>b,则n的取值范围是b<=n<=a randint(a,b) 用于生成一个指定范围内的整数n,n的取值范围是a<=n<=b 7 7.1 随机数工具:random库 函数 功能说明 randrange([start,]stop[, step]) 生成一个按指定基数递增的序列,再从该序列中获取一个随机数。start参数表示范围的起始值,包含在范围内;stop参数表示范围的结束值,不包含在范围内;step参数是可选的,表示基数,默认值为1 choice(sequence) 从序列中获取一个随机元素,参数sequence接收一个序列类型 shuffle(x[,random]) 将序列x中的元素随机排列 sample(sequence,k) 从指定序列中获取长度为k的片段,随机排列后返回新的序列 random库是Python标准库中的一部分,它提供了一系列的随机数生成函数,可以用于生成随机数和随机序列等。 8 7.1 随机数工具:random库 生成随机数的示例代码如下: import random print(random.random()) # 生成0~1.0之间的随机浮点数,包含0 print(random.uniform(3, 5)) # 生成3.0~5.0之间的随机浮点数,包含3.0和5.0 print(random.randint(2, 8)) # 生成2~8之间的的随机整数,包含2和8 print(random.randrange(10)) # 生成0~9的序列,从该序列中获取随机数 print(random.randrange(1, 10, 2)) # 生成序列[1,3,5,7,9],从中获取一个元素 9 7.1 随机数工具:random库 import random result = random.choice(['勤','而','行','之']) print(result) word_li = ['勤','而','行','之'] # 随机排列列表里面的元素 random.shuffle(word_li) print(word_li) # 从元组中获取长度为3的片段,对这个片段随机排列后返回新的序列 result = random.sample(('勤','而','行','之'), k=3) print(result) 生成随机数的示例代码如下: 10 实例:验证码 7.2 11 7.2 实例:验证码 当前互联网时代,为了保护用户信息和安全,许多网站都设置了验证码。这样做的目的是为了识别用户是否为机器人,防止机器人自动注册账号、发送垃圾信息等行为。常见的验证码由数字和字母组成,长度通常为4位或6位。 12 7.2 实例:验证码 本实例要求编写一个程序,用于生成一个6位验证码。6位验证码有6个字符,每位字符都有3种可能,分别是大写字母、小写字母、数字,具体的类型和取值都无法确定。 13 7.2 实例:验证码 实现思路可以分为以下步骤: (1)定义一个函数,用于生成6位验证码。 (2)在函数内部定义一个用于保存验证码字符的变量,变量的初始值为空字符串。 (3)通过for语句和range()函数循环生成验证码的每一个字符。 (4)在循环内部,随机生成一个代表字符类型的数字,并且随机生成一个该类型的字符。 14 绘图工具:turtle库 7.3 15 7.3.1 创建图形窗口 图形窗口也称为画布(canvas)。控制台无法绘制图形,使用turtle库绘制图形化界面可以先使用setup()函数创建图形窗口,该函数的语法格式如下。 setup(width, height, startx=None, starty=None) 例如,使用turtle的setup()函数创建一个宽800像素、高600像素的图形窗口,代码如下: turtle.setup(800, 600) 需要说明的是,使用turtle库实现图形化界面时setup()函数并不是必须的,如果程序中没有调用setup()函数,程序执行时会生成一个默认窗口。另外,通过turtle库的title()函数可以为窗口设置标题,如此每次打开的窗口左上角都会显示指定的标题。 7.3.1 创建图形窗口 使用turtle库绘制图形完毕后,应调用turtle库的done()函数通知图形窗口绘制结束,不过图形窗口仍然处于打开状态,直到用户手动关闭图形窗口时才会退出,示例如下: import turtle turtle.setup(800, 600) # 创建图形窗口 turtle.done() # 绘制结束 7.3.2 设置画笔 1. 设置画笔属性的相关函数 turtle库中用于设置画笔属性的函数主要有3个,语法格式如下。 pensize(<width>) # 设置画笔尺寸 speed(speed) # 设置画笔移动的速度 color(color) # 设置画笔颜色 7.3.2 设置画笔 (1)pensize()函数 参数width表示画笔的尺寸,即画笔绘制出线条的宽度,若该参数为空,则pensize()函数返回画笔当前的尺寸。 (2)speed()函数 参数speed表示画笔移动的速度,该参数的取值为0~10的整数,包括0和10在内,整数越大,速度越快。 1. 设置画笔属性的相关函数 7.3.2 设置画笔 (3)color()函数 color()函数的参数color表示画笔的颜色,该参数的值有以下几种表示方式: 字符串。例如red、orange、yellow、green等。 RGB颜色。这种表示方式又分为RGB整数值和RGB小数值两种,RGB整数值如(255,255,255)、(190,213,98),RGB小数值如(1,1,1)、(0.65,0.7,0.9)。 十六进制颜色,如#FFFFFF、#0060F6。 1. 设置画笔属性的相关函数 7.3.2 设置画笔 颜色 字符串 RGB整数值 RGB小数值 十六进制 白色 white (255,255,255) (1,1,1) #FFFFFF 黄色 yellow (255,255,0) (1,1,0) #FFFF00 洋红 magenta (255,0,255) (1,0,1) #FF00FF 青色 cyan (0,255,255) (0,1,1) #00FFFF 蓝色 blue (0,0,255) (0,0,1) #0000FF 黑色 black (0,0,0) (0,0,0) #000000 海贝色 seashell (255,245,238) (1,0.96,0.93) #FFF5EE 金色 gold (255,215,0) (1,0.84.0) #FFD700 粉红色 pink (255,192,203) (1,0.75,0.80) #FFC0CB 棕色 brown (165,42,42) (0.65,0.16,0.16) #A22A2A 紫色 purple (160,32,240) (0.63,0.13,0.94) #A020F0 番茄色 tomato (255,99,71) (1,0.39,0.28) #FF6347 常见颜色的表现形式 1. 设置画笔属性的相关函数 7.3.2 设置画笔 设置画笔颜色的示例代码如下。 import turtle turtle.color('pink') # 使用字符串方式表示的颜色 turtle.color('#A22A2A') # 使用十六进制方式表示的颜色 turtle.colormode(1.0) # 使RGB小数值模式 turtle.color((1, 1, 0)) turtle.colormode(255) # 使用RGB整数值模式 turtle.color((165, 42, 42)) turtle.done() 1. 设置画笔属性的相关函数 7.3.2 设置画笔 2. 设置画笔状态的相关函数 turtle库中的画笔分为提起(UP)和放下(DOWN)两种状态。只有画笔为放下状态时,移动画笔,画布上才会留下痕迹。使用penup()和pendown()函数可以设置画笔状态,示例如下: import turtle turtle.penup() # 提起画笔 turtle.pendown() # 放下画笔 turtle.done() 7.3.3 绘制图形 在画笔状态为放下时,通过移动画笔可以在画布上绘制图形。此时可以将画笔想象成一只海龟:海龟落在画布上,它可以向前、向后、向左、向右移动,海龟爬动时在画布上留下痕迹,痕迹即为所绘图形。 7.3.3 绘制图形 为了使图形出现在理想的位置,需要了解turtle的坐标体系。turtle的坐标体系以窗口中心为原点,右方为默认朝向,原点右侧为x轴正方向,原点上方为y轴正方向。 7.3.3 绘制图形 1. 移动控制函数 移动控制函数包括forward()、backward()和goto()函数,分别用于控制画笔向前、向后或者向指定位置移动,这些函数的语法格式如下。 forward(distance) # 向前移动 backward(distance) # 向后移动 goto(x, y=None) # 移动到指定位置 函数forward()和backward()的参数distance用于指定画笔移动的距离,单位为像素;函数goto()的参数x、y分别表示目标位置的横坐标和纵坐标。 7.3.3 绘制图形 2. 角度控制函数 角度控制函数用于更改画笔朝向,包括right()、left()和seth(),这些函数的语法格式如下。 right(degree) # 向右转动 left(degree) # 向左转动 seth(angle) # 向某个方向转动 函数right()和left()的参数degree用于指定画笔向右与向左的角度。 7.3.3 绘制图形 函数seth()的参数angle用于设置画笔在坐标系中的角度。angle以x轴正向为0°,以逆时针方向为正,角度从0°逐渐增大;以顺时针方向为负,角度从0°逐渐减小,角度与坐标系的关系如图所示。 2. 角度控制函数 7.3.3 绘制图形 例如,绘制边长为200像素的正方形,具体代码如下。 import turtle turtle.forward(200) # 向前移动200像素 turtle.seth(-90) # 调整画笔朝向,使画笔朝向-90°方向 turtle.forward(200) # 向前移动200像素 turtle.right(90) # 调整画笔朝向,向右转动90° turtle.forward(200) # 向前移动200像素 turtle.left(-90) # 调整画笔朝向,向左转动-90° turtle.forward(200) # 向前移动200像素 turtle.right(90) # 调整画笔朝向,向右转动90° turtle.done() 2. 角度控制函数 7.3.3 绘制图形 3. 图形绘制函数 turtle库中提供了circle()函数,使用该函数可绘制以当前坐标为圆心,以指定像素值为半径的圆或弧。circle()函数的语法格式如下。 circle(radius, extent=None, steps=None) 参数radius用于设置半径; extent用于设置弧的角度。 7.3.3 绘制图形 3. 图形绘制函数 radius和extent的取值可以是正数,也可以是负数,具体可以分成以下几种情况: 当radius为正数时,画笔以原点为起点向上绘制弧线;radius为负数时,画笔以原点为起点向下绘制弧线。 当extent为正数时,画笔以原点为起点向右绘制弧线;extent为负数时,画笔以原点为起点向左绘制弧线。 7.3.3 绘制图形 3. 图形绘制函数 假设绘制半径为90或-90、角度为60°或-60°的弧线,绘制效果如图所示。 7.3.3 绘制图形 3. 图形绘制函数 参数steps用于设置步长,它的取值可以是整数或None。默认值为None,表示该参数无效。 若参数steps的值为正数,则使用circle()函数可以绘制一个有N条边的正多边形; 若参数steps的值为负数,则使用circle()函数不会绘制图形。 $$

资源预览图

7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
1
7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
2
7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
3
7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
4
7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
5
7.1随机数工具:random库(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。