Python程序设计与案例教程 课件 项目07 库与模块_第1页
Python程序设计与案例教程 课件 项目07 库与模块_第2页
Python程序设计与案例教程 课件 项目07 库与模块_第3页
Python程序设计与案例教程 课件 项目07 库与模块_第4页
Python程序设计与案例教程 课件 项目07 库与模块_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计与案例教程Python延时符

库与模块项目7项目概述模块是一组包含变量、函数和类的Python文件,而库则是多个模块的集合,为特定任务或领域提供了丰富的功能。例如,NumPy库在科学计算领域应用广泛,它提供了高效的数组操作和数学函数;Pandas库则专注于数据分析,其提供的数据结构和函数方便用户对数据进行清洗、转换和分析等操作;Django、Flask框架库主要应用于Web开发领域,帮助开发者快速搭建网站,处理请求和响应等。本项目主要介绍Python的库与模块,涵盖模块与库的安装与导入,库与模块的概念,常见数学模块和随机模块的应用,以及Turtle绘图库的基本功能、操作与应用等,最后通过项目实战巩固所学知识。任务1常用模块任务1常用模块·知识准备通过本任务,你将学习Python中代码组织的三个关键层次——模块、包和库,以及常用模块的应用。包括数学模块(math)和随机模块(random)的常用功能,借助它们完成数学计算和随机数生成等任务。掌握这些内容能帮助你高效编写简洁、可维护的代码,提升编程实战能力。04030201学习目标了解Python库的生态系统,及模块、包、库的概念与关联认识常见模块与第三方库的功能及应用场景掌握模块、包的创建与使用方法,以及第三方库的安装和导入操作能借助Python库解决实际问题,提升编程实践能力与问题解决能力。延时符目录

Contents库的安装与导入015数学模块02随机模块03综合案例04一、库的安装与导入Python中,代码的组织方式有三个层次,分别是模块、包和库。模块是Python中最基本的组织单位,它是一个包含了变量、函数、类和语句的文件。包包含了多个模块的目录。包的目录需要包含一个特殊的__init__.py文件,用于指示该目录是一个包。库包含了多个模块或包的集合。它提供了一组相关的功能和工具,用于解决特定的问题或实现特定的功能一、库的安装与导入1.安装库pip是Python的包或库的管理工具,主要用于安装、升级和卸载Python包或库。一般在命令行中使用“pipinstall库名”的格式来安装第三方库。例如,要安装“numpy”库,可以输入以下两种命令:安装默认版本:pipinstallnumpy安装指定版本:pipinstallnumpy==1.19.5pip工具默认会到PyPI(Python包索引)官网下载对应的模块、包或库。说明如果要验证当前的开发环境中是否安装了该模块,可以使用“piplist”命令查询当前环境下已经安装好的模块,查询结果如图7-1-1所示图7-1-1

模块查询结果一、库的安装与导入2.导入模块或函数在使用模块前,先要导入模块到当前程序。Python程序中一般使用import语句导入模块,可以一次导入一个模块,也可以一次导入多个模块,模块之间用逗号分隔。语法格式如下:import模块1,模块2,模块3模块导入后,可以使用“.”来调用模块中的变量、函数和类等内容,采用这种方式调用内容可以避免使用多个模块时,发生变量、函数或类名重名的问题。使用格式如下:模块.变量模块.函数模块.类一、库的安装与导入一、库的安装与导入普通导入:importnumpyarr=numpy.array([1,2,3,4,5])print(arr)别名导入:importnumpyasnparr=np.array([1,2,3,4,5])print(arr)导入单个:frommathimportsqrtresult=sqrt(16)print(result)导入多个:frommathimportsqrt,sinsqrt_result=sqrt(25)sin_result=sin(0)print(sqrt_result,sin_result)如果不存在变量、函数和类名重复的情况,也可以使用“from库名import模块名/函数名”的格式来导入模块。一、库的安装与导入二、数学模块math模块是Python标准库中的一个内置模块,它提供了许多对浮点数进行数学运算的函数。这些函数包括基本的数学运算如三角函数、对数函数、幂函数等,主要用于科学计算、工程计算以及其他需要精确数学计算等场景。math.sin(x):用于计算x弧度的正弦值。例如,要计算30度角(转换为弧度是math.pi/6)的正弦值,可以使用:

1.三角函数math.sin(math.pi/6)返回0.5math.cos(x):计算x弧度的余弦值。例如,要计算30度角(转换为弧度是math.pi/3)的余弦值,可以使用:

math.cos(math.pi/3)返回0.5

math.tan(x):计算x弧度的正切值。注意,当x是math.pi/2(90度)加上k*math.pi(k为整数)时,正切值趋近于无穷大,函数会返回math.inf或-math.inf二、数学模块math.log(x[,base]):用于计算以base为底x的对数,如果省略base参数,默认计算自然对数(以e为底)。例如:

2.对数与幂函数math.log(math.e)等于1,math.log(100,10)等于2math.sqrt(x):计算x的平方根。例如:

math.sqrt(9)返回3

math.pow(x,y):计算x的y次幂。例如:

math.pow(2,3)返回8二、数学模块

math.pi:圆周率π的近似值,约为3.141592653589793,在涉及圆相关的计算中使用。例如:

3.常量C=2*math.pi*r,其中r是半径

得到圆周长S=math.pi*r*r,

得到圆面积

math.e:自然常数e的近似值,约为2.718281828459045二、数学模块实例7.1.1:计算直角三角形的斜边长度已知直角边a=3和b=4,根据勾股定理c=sqrt(a*a+b*b),计算直角三角形的斜边长度。程序代码如下:importmatha=3b=4c=math.sqrt(a*a+b*b)print(c)运行结果如下:5.0二、数学模块实例7.1.2——计算数字9的平方根。程序代码如下:importmathnumber=9square_root=math.sqrt(number)print(square_root)运行结果如下:3.0二、数学模块实例7.1.3——计算半径为3的圆的周长。程序代码如下:importmathradius=3circumference=2*math.pi*radiusprint(circumference)运行结果如下:18.84955592153876二、数学模块实例7-1-4:计算30度角(弧度制为)的正弦值。程序代码如下:importmathangle_in_radians=math.pi/6sine_value=math.sin(angle_in_radians)print(sine_value)运行结果如下:0.49999999999999994二、数学模块实例7-1-5:向上取整和向下取整。(1)向上取整:对2.3进行向上取整程序代码如下:importmathnumber1=2.3ceiling_value=math.ceil(number1)print(ceiling_value)运行结果如下:3(2)向下取整:对2.7进行向下取整程序代码如下:importmathnumber2=2.7floor_value=math.floor(number2)print(floor_value)运行结果如下:2二、数学模块实例7-1-6:计算以10为底,100的对数。程序代码如下:importmathnumber3=100logarithm_value=math.log10(number3)print(logarithm_value)运行结果如下:2.0math模块中的函数主要处理浮点数。如果传入整数,Python会自动将其转换为浮点数进行计算。在进行复杂的数学计算时,要注意浮点数精度问题。例如,由于浮点数在计算机内部的表示方式,可能会出现math.sqrt(2)*math.sqrt(2)并不完全等于2的情况,这是因为浮点数存储和计算的误差。提示二、数学模块三、随机模块Python的random模块是标准库中用于生成伪随机数的工具,基于确定性算法模拟随机行为,适用于数据分析、模拟实验、游戏开发等非安全敏感场景。例如,蒙特卡洛模拟、抽奖程序或机器学习数据洗牌均可借助random实现。其简单易用的接口使其成为处理日常随机任务的首选,但需注意避免在循环中重复初始化种子,以免破坏随机性。

random.random():生成一个在0到1之间(含0但不含1)的随机浮点数。例如:print(random.random())

random.randint(a,b):生成一个在a和b之间(含a和b)的随机整数。例如:

print(random.randint(1,10))

random.choice(seq):从一个非空序列seq中随机选择一个元素。例如:

my_list=['apple','banana','cherry']print(random.choice(my_list))1.功能说明三、随机模块

random.sample(population,k):从population序列中随机抽取k个不重复元素。例如:my_list=[1,2,3,4,5]print(random.sample(my_list,3))

random.shuffle(x):对可修改序列x进行随机排序,改变原序列。例如:

my_list=[1,2,3,4,5]random.shuffle(my_list)print(my_list)

random.choices(population,weights=None,cum_weights=None,k=1):

从population序列中随机选择k个元素,可根据weights或cum_weights设定权重。例如:

my_list=['apple','banana','cherry']weights=[1,2,3]print(random.choices(my_list,weights=weights,k=2))三、随机模块

random.randrange(start,stop=None,step=1):从start开始到stop结束(不包括stop),以step为步长生成一个随机数。例如:print(random.randrange(10))生成0到9之间的随机数print(random.randrange(1,11,2))生成1到10之间的奇数

若仅提供一个参数,则该参数视为stop,范围为0到stop(不包括stop),默认步长为1;若提供两个参数,范围为start到stop(不包括stop);提供三个参数则按指定步长生成随机数。可用于按步长和范围选取随机整数,如从一个等差数列中随机选取元素,或按范围选取元素时排除一些元素(通过步长)

random.uniform(a,b):生成一个在a和b之间(含a和b)的随机浮点数。例如:

print(random.uniform(1.5,2.5))三、随机模块

random.seed(a=None,version=2):初始化随机数生成器,可设置随机数生成的种子。例如:random.seed(42)print(random.random())a可以是整数、字节或字节数组等,相同的种子会生成相同的随机数序列,可用于调试和重现随机过程。三、随机模块2.常见的应用

(1)生成随机整数

random.randint(a,b):生成一个范围在[a,b]之间的随机整数,包括a和b。例如:importrandomnum=random.randint(1,10)print(num)这段代码会在1到10之间(包括1和10)生成一个随机整数,并将其存储在num变量中。三、随机模块

(2)生成随机浮点数

random.random():生成一个范围在[0,1)之间的随机浮点数。例如:importrandomnum=random.random()print(num)这个函数会生成一个0到1之间的随机浮点数,但不包括1。三、随机模块

random.uniform(a,b):生成一个范围在[a,b]之间的随机浮点数。例如:importrandomnum=random.uniform(1.5,2.5)print(num)这个函数会生成一个1.5到2.5之间的随机浮点数。三、随机模块

(3)从序列中随机选择元素

random.choice(seq):从序列seq(可以是列表、元组或字符串)中随机选择一个元素。例如:importrandommy_list=[1,2,3,4,5]element=random.choice(my_list)print(element)这个函数会从my_list中随机选择一个元素。三、随机模块

(4)乱序序列

random.shuffle(lst):将列表lst中的元素随机打乱顺序。例如:importrandommy_list=[1,2,3,4,5]random.shuffle(my_list)print(my_list)调用random.shuffle(my_list)后,my_list中的元素顺序会被随机打乱。三、随机模块

(5)随机样本

random.sample(population,k):从population中随机选取k个不重复的元素,返回一个列表。例如:importrandommy_list=[1,2,3,4,5,6,7,8,9,10]sample_list=random.sample(my_list,3)print(sample_list)调用后从my_list中随机选取3个元素作为一个新的列表。三、随机模块

(6)使用secrets模块生成安全的随机数

对于密码学或安全敏感的应用程序,应该使用secrets模块,因为random模块可能不够安全。例如,生成范围在[0,n)之间的随机整数:importsecretsnum=secrets.randbelow(10)print(num)三、随机模块实例7-1-7:生成10个随机整数并计算它们的平均值。程序代码如下:importrandom#生成10个1到100之间的随机整数random_integers=[random.randint(1,100)foriinrange(10)]#计算平均值average=sum(random_integers)/len(random_integers)print("生成的10个随机整数为:",random_integers)print("它们的平均值为:",average)运行结果如下:生成的10个随机整数为:[40,12,43,35,6,16,69,92,44,91]它们的平均值为:44.8三、随机模块四、综合案例7.1.8航天探测器飞行数据模拟分析

“航天强国”战略目标是建设世界航天强国,推动我国航天事业全面、协调、可持续发展,实现航天技术自主创新和跨越发展,为国家经济建设、社会发展、国家安全提供强大支撑。现在为航天科研机构开发一个航天探测器飞行模拟系统。该系统要能模拟探测器在飞行过程中的实际情况,考虑到宇宙环境复杂多变,探测器速度会受到各种因素影响而产生变化。通过使用math模块和random模块,结合物理运动规律,计算探测器在一定时长内的飞行距离,同时记录飞行过程中的最大速度,对探测器的性能和飞行状况进行初步评估和分析。实施步骤:(1)定义变量,包含:探测器初始速度init_speed=5000、飞行总时长total_time=100、飞行总距离total_distance=0、最大时速max_speed=0(2)循环计算total_time时间内,每个小时的下列指标变化:模拟宇宙环境因素影响,加速度acc_speed在(-10,10)范围生成随机变化;计算当前的即时速度:current_speed=init_speed+acc_speed;更新最大速度max_speed;根据匀变速直线运动公式s=vt+0.5at²(v=初始速度,t=1小时)计算当前小时飞行距离current_distance;向上取整计算当前小时飞行的距离,并累加到总飞行距离total_distance;更新初始速度init_speed=current_speed;(3)输出计算结果。四、综合案例任务2

Turtle库任务2Turtle库·知识准备通过本任务,你将学习Python中Turtle库的基本功能、操作及应用。Turtle库核心是通过控制虚拟“海龟”的移动轨迹绘制图形,全面了解画布的设置、画笔的状态与属性。通过掌握这些知识以便使用Turtle库绘制各种基础图形和复杂图案,实现图形绘制过程的可视化。04030201学习目标理解Turtle库核心逻辑,掌握绘制图形的基本原理能熟练运用Turtle库绘图命令能基于Turtle库功能,分析需求并规划绘图步骤,提升代码实践与创意表达能力培养利用库功能解决可视化需求的思维,规范代码编写习惯。延时符目录

Contents基本功能0140基本操作02基础实例03综合案例04一、基本功能Python的turtle库是一个基于Logo语言的绘图库,主要用于绘制各种图形和图案。其核心基于“海龟绘图”理念:通过控制屏幕上的虚拟“海龟”移动轨迹(如前进、转向、抬笔/落笔),生成线条、几何图形或复杂图案。相较于专业绘图库(如matplotlib),其更注重过程的可视化与交互性,是连接基础语法与复杂项目的桥梁。作为Python标准库的一部分,它无需额外安装,是入门教学、创意实验和轻量级图形开发的理想工具。1.基本功能(1)画布(canvas)画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。例如:turtle.screensize(canvwidth=None,canvheight=None,bg=None)#设置画布大小turtle.screensize()#返回默认大小(400,300)一、基本功能(2)画笔画笔的状态:在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向),turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态画笔的属性:turtle.pensize():设置画笔的宽度;turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如”green“,“red”,也可以是RGB3元组。turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。一、基本功能表7-2-1常用颜色表示方法以及对应关系表一、基本功能(3)绘图命令操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。画笔运动命令:turtle.forward(distance):向当前画笔方向移动distance像素长度;

turtle.backward(distance):向当前画笔相反方向移动distance像素长度;

turtle.right(degree):顺时针移动degree°;

turtle.left(degree):逆时针移动degree°;

turtle.pendown():移动时绘制图形,缺省时也为绘制;

一、基本功能画笔运动命令:

turtle.goto(x,y):将画笔移动到坐标为x,y的位置;

turtle.penup():提起笔移动,不绘制图形,用于另起一个地方绘制

turtle.circle(radius):画圆,半径radius为正表示逆时针画圆,圆心在左侧;radius为负表示顺时针画圆,圆心在右侧;turtle.setx():将海龟移动到x轴指定坐标;turtle.sety():将海龟移动到y轴指定坐标;

turtle.setheading(angle):设置当前朝向为angle角度;

turtle.home():设置当前画笔位置为原点,朝向东;

turtle.dot(r):绘制一个指定直径和颜色的圆点;一、基本功能

画笔控制命令

turtle.fillcolor(colorstring):绘制图形的填充颜色;

turtle.color(color1,color2):同时设置pencolor=color1,fillcolor=color2;

turtle.filling():返回当前是否在填充状态;

turtle.begin_fill():准备开始填充图形;

turtle.end_fill():填充完成;

turtle.hideturtle():隐藏画笔的turtle形状;

turtle.showturtle():显示画笔的turtle形状;一、基本功能

全局控制命令

turtle.clear():清空turtle窗口,但是turtle的位置和状态不会改变;

turtle.reset():清空窗口,重置turtle状态为起始状态;

turtle.undo():撤销上一个turtle动作;

turtle.isvisible():返回当前turtle是否可见;

turtle.stamp():复制当前图形;

turtle.write(s[,font=("font-name",font_size,"font_type")]):写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项。一、基本功能二、基本操作使用turtle库之前需要先引入库文件,语法如下:importturtle1.导入库文件

turtle.screensize(canvwidth=None,canvheight=None,bg=None)参数分别为画布的宽(单位像素),高,背景颜色。

turtle.screensize(800,600,"green")设置画布的宽为800,高为600,背景颜色为绿色。

turtle.setup(width=0.5,height=0.75,startx=None,starty=None)参数:width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例,(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。

turtle.setup(width=0.6,height=0.6)设置画布所占屏幕宽为60%,高为60%2.画布设置二、基本操作

turtle.pensize(20):设置画笔的宽度为20

turtle.pencolor("red"):设置画笔的颜色为红色

turtle.speed(2):设置画笔的移动速度为2,范围为0-103.画笔设置二、基本操作

turtle.forward(100):向前移动100(像素长度)

turtle.backward(100):向后移动100

turtle.left(90):逆时针移动90度

turtle.right(90):顺时针移动90度4.前进、后退、左转、右转二、基本操作turtle.penup():抬起画笔,不再画线turtle.pendown():落下画笔,继续画线5.提笔、落笔turtle.goto(100,100):将画笔移动到坐标(100,100)位置6.到达指定坐标二、基本操作turtle.dot(20):绘制一个直径为20的圆点

turtle.dot(100,"red"):绘制一个直径100,颜色为红色的圆点7.画点turtle.circle(100):画一个半径为100,圆心在海龟左侧的圆8.画圆使用turtle.done()保持窗口打开,否则绘图窗口可能会一闪而过。在使用turtle库时,可以结合screen对象进行更多操作,例如turtle.Screen()创建一个屏幕对象,你可以使用它来绑定鼠标点击等事件。海龟的初始位置是在屏幕的中心,方向是向右。提示二、基本操作三、基础实例实例7.2.1——绘制正方形。通过importturtle导入turtle库。并创建一个海龟对象t。使用for循环和t.forward(100)、t.right(90)组合,for循环运行4次,每次向前移动100个单位,然后右转90度,形成正方形的四条边。使用turtle.done()保持绘图窗口打开,以便查看绘制的图形。程序代码如下:importturtle#创建一个海龟对象t=turtle.Turtle()#绘制一个正方形foriinrange(4):t.forward(100)t.right(90)#保持窗口打开turtle.done()运行结果:案例7.2.2——绘制三角形。通过forward()和left()函数绘制一个等边三角形。程序代码如下:importturtledefdraw_triangle():turtle.forward(100)turtle.left(120)turtle.forward(100)turtle.left(120)turtle.forward(100)draw_triangle()turtle.done()运行结果:三、基础实例实例7.2.3——绘制圆形。使用circle()函数绘制一个半径为50的圆。程序代码如下:importturtledefdraw_circle():turtle.circle(50)draw_circle()turtle.done()运行结果:三、基础实例实例7.2.4——绘制正多边形。使用draw_polygon()绘制任意边数n和边长为side_length的正多边形。程序代码如下:importturtledefdraw_polygon(n,side_length):angle=360/nforiinrange(n):turtle.forward(side_length)turtle.right(angle)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论