Python基础教程(第3版)- 课件 第6章 模块_第1页
Python基础教程(第3版)- 课件 第6章 模块_第2页
Python基础教程(第3版)- 课件 第6章 模块_第3页
Python基础教程(第3版)- 课件 第6章 模块_第4页
Python基础教程(第3版)- 课件 第6章 模块_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计授课教师:第6章模块课程描述模块是Python语言的一个重要概念,它可以将函数按功能划分到一起,以便日后使用或共享给他人。用户可以使用Python标准库中的模块,也可以下载和使用第三方模块。本章将介绍如何使用Python标准库中的模块,如何自定义模块,以及如何下载和使用第三方模块。本章知识点6.1Python标准库中的常用模块6.2自定义和使用模块6.3第三方模块的使用6.1Python标准库中的常用模块Python标准库是Python自带的开发包,是Python的组成部分,它会随Python解释器一起安装在系统中。Python标准库中包含许多模块,本节将介绍其中一些常用模块的使用方法。导入模块方法一:在使用模块之前首先需要导入模块。使用import语句可以导入模块,语句如下:import模块名导入后,对模块中的函数采用模块名.函数名()的形式使用。导入模块方法二:可以使用from-import方法导入模块,语法如下:from模块名import函数名导入后,对模块中的函数可以直接采用函数名()的形式使用。导入模块方法三:可以使用import-as方法导入模块,语法如下:import模块名as别名导入后,调用该模块的函数时需要使用设置的别名,即通过别名来调用模块中的函数,语句如下:别名.函数名(参数列表)这种方法主要目的是简化代码的书写。6.1Python标准库中的常用模块6.1.1math模块6.1.2random模块6.1.3sys模块6.1.4platform模块6.1.5time模块6.1.1math模块math模块为基础数学处理模块,可以实现基本的数学运算。首先需要使用import语句导入模块,语句如下:importmathmath模块定义了e(自然对数)和pi(π)两个常量。【例题】打印e(自然对数)和pi(π)的值打印e(自然对数)和pi(π)的值。importmathprint(math.e)print(math.pi)运行结果如下:2.7182818284590453.141592653589793math模块中的常用函数方法原型具体说明ceilmath.ceil(x)返回大于等于x的最小整数fabsmath.fabs(x)返回x的绝对值floormath.floor(x)返回小于等于x的最大整数powmath.pow(x,y)返回x的y次幂sqrtmath.sqrt(x)返回

truncmath.trunc(x)返回x的整数部分【例题】使用math模块的例子importmathprint(math.ceil(3.4))print(math.fabs(-3))print(math.floor(3.4))print(math.sqrt(4))print(math.trunc(3.4))运行结果如下:43.032.036.1.2random模块方法原型具体说明randomrandom.random()生成一个0到1之间的随机浮点数:0<=n<1.0uniformrandom.uniform(a,b)用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,另一个是下限。如果a<b,则生成的随机数n满足a<=n<=b。如果a>b,则b<=n<=arandintrandom.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a<=n<=brandrangerandom.randrange([start],stop[,step])从[start,stop)范围内,按指定步长step递增的集合中获取一个随机数。start默认值为0,step默认值为1。如:random.randrange(1,10,2),结果相当于从[1,3,5,7,9]序列中获取一个随机数choicerandom.choice(sequence)从序列中获取一个随机元素。参数sequence表示一个有序类型,可以是列表、元组或字符串shufflerandom.shuffle(x)用于将一个列表中的元素打乱。x是一个列表samplerandom.sample(sequence,k)从指定序列sequence中随机获取k个元素,以列表类型返回。原有序列不会被修改【例题】随机生成一个0~100的整数。importrandomprint(random.randint(0,100))【例题】随机生成一个1~100间的偶数。importrandomprint(random.randrange(2,101,2))【例题】随机生成一个0~1间的浮点数。importrandomprint(random.random())【例题】从指定字符集合里随机获取一个字符。importrandomprint(random.choice('jklhgy&#&*()%^@'))【例题】将一个列表中的元素打乱。importrandomlist=[1,2,3,4,5,6]random.shuffle(list)print(list)【例题】从指定序列中随机获取指定个数的元素。importrandomlist=[1,2,3,4,5,6]print(random.sample(list,3))6.1.3sys模块sys模块是Python标准库中最常用的模块之一。通过它可以获取命令行参数,从而实现从程序外部向程序传递参数的功能;也可以获取程序路径和当前系统平台等信息。1.获取当前的操作系统平台Python是支持跨平台的语言。因此,在程序中经常需要获取当前的操作系统平台。以便针对不同的操作系统编写对应的程序。使用变量sys.platform可以获取当前的操作系统平台。【例题】使用变量sys.platform打印当前的操作系统平台。importsysprint(sys.platform)sys.platform只返回操作系统的平台信息,并不包含操作系统的具体信息。2.使用命令行参数所谓命令行参数是指在运行程序时命令行中给定的参数。使用sys模块的argv序列可以在Python中获取命令行参数。sys.argv[0]是获取当前运行的脚本文件的文件名,sys.argv[1]是获取第1个命令行参数,sys.argv[2]是获取第2个命令行参数,以此类推。【例题】打印命令行参数。importsysprint("共有",len(sys.argv),"个命令行参数。")foriinrange(0,len(sys.argv)): print("第",i+1,"个参数为:",sys.argv[i])3.退出应用程序使用sys.exit()函数可以退出应用程序。语法如下:sys.exit(n)n=0时,程序无错误退出;n=1时,程序有错误退出。【例题】使用sys.exit()函数的例子。importsysiflen(sys.argv)<2: print("请使用命令行参数") sys.exit(1)foriinrange(0,len(sys.argv)): print("第",i+1,"个参数为:",sys.argv[i])4.字符编码使用sys.getdefaultencoding()函数获取系统当前编码。【例题】打印系统当前编码。importsysprint(sys.getdefaultencoding())5.搜索模块的路径当使用import语句导入模块时,Python会自动搜索模块文件,可以通过sys.path获取搜索模块的路径。【例题】打印Python搜索模块的路径。importsysprint(sys.path)sys.path实际上是个列表,第1个元素是当前程序所在的目录。6.1.4platform模块1.获取操作系统名称及版本号使用platform.platform()函数可以获取操作系统名称及版本号信息。【例题】打印当前操作系统名称及版本号。importplatformprint(platform.platform())2.获取操作系统类型使用platform.system()函数可以获取操作系统类型。【例题】打印当前操作系统类型。importplatformprint(platform.system())3.获取操作系统版本信息使用platform.version()函数可以获取操作系统的版本信息。【例题】打印当前操作系统的版本信息。importplatformprint(platform.version())4.获取计算机类型信息使用platform.machine()函数可以获取计算机类型信息。【例题】打印当前计算机类型信息。importplatformprint(platform.machine())5.获取计算机的网络名称使用platform.node()函数可以获取计算机的网络名称。【例题】打印当前计算机的网络名称。importplatformprint(platform.node())6.获取计算机的处理器信息使用cessor()函数可以获取计算机的处理器信息。【例题】打印当前计算机的处理器信息。importplatformprint(cessor())7.获取计算机的综合信息使用platform.uname()函数可以获取计算机的以上所有综合信息。【例题】打印当前计算机的综合信息。importplatformprint(platform.uname())8.获取Python版本信息使用platform.python_build()函数可以获取Python完整版本信息,包括Python的主版本、编译版本号和编译时间等信息。【例题】打印Python版本信息。importplatformprint(platform.python_build())8.获取Python版本信息使用platform.python_version()函数可以获取Python的主版本信息。使用platform.python_version_tuple()函数可以以元组格式返回Python的主版本信息。【例题】打印Python的主版本信息。importplatformprint(platform.python_version())print(platform.python_version_tuple())9.获取Python解释器信息使用platform.python_compiler()函数可以获取Python的解释器信息。【例题】打印Python的解释器信息。importplatformprint(platform.python_compiler())6.1.5time模块time模块可以提供各种操作时间的函数。1.时间的表示方式计算机可以使用时间戳、格式化时间的字符串和struct_time元组三种方式表示时间。1.时间的表示方式Unix时间戳(Unixtimestamp),或称Unix时间(Unixtime)、POSIX时间(POSIXtime),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如Linux系统),也在许多其他操作系统中被广泛采用。1.时间的表示方式struct_time元组包含9个元素:year,4位的年份,例如2015month,月份,1~12的整数day,日期,1~31的整数hours,小时,0~23的整数minutes,分钟,0~59的整数seconds,秒钟,0~59的整数weekday,星期,0~6的整数,星期一为0Julianday,一年有几天,1~366的整数DST,表示是否为夏令时。如果DST等于0,则给定的时间属于标准时区;如果DST等于1,则给定的时间属于夏令时时区2.获取当前时间调用time.time()函数可以获取当前时间的时间戳。【例题】使用time.time()函数的例子。importtimeprint(time.time())时间戳只是一个大的浮点数,很难看得懂具体的时间。3.将一个时间戳转换成一个当前时区的struct_time调用time.localtime()函数可以将一个时间戳转换成一个当前时区的struct_time【例题】使用time.localtime()函数的例子。importtimeprint(time.localtime(time.time()))此时显示的结果与人们日常的习惯还是有所不同。4.格式化输出struct_time时间调用time.strftime()函数可以按照指定的格式输出struct_time时间,具体方法如下:time.strftime(格式字符串,struct_time时间)4.格式化输出struct_time时间格式字符串中可以使用的日期和时间符号如下:%y两位数的年份表示(00-99)%Y四位数的年份表示(0000-9999)%m月份(01-12)%d月内中的一天(01-31)%H24小时制小时数(0-23)%I12小时制小时数(01-12)%M分钟数(00-59)%S秒(00-59)%a本地简化星期名称%A本地完整星期名称4.格式化输出struct_time时间%b本地简化的月份名称%B本地完整的月份名称%c本地相应的日期表示和时间表示%j年内的一天(001-366)%p本地A.M.或P.M.%U一年中的星期数(00-53),星期天为星期的开始%w星期(0-6),星期天为星期的开始%W一年中的星期数(00-53),星期一为星期的开始%x本地相应的日期表示%X本地相应的时间表示%Z当前时区的名称%%%号本身【例题】使用time.strftime()函数的例子。importtimeprint(time.strftime('%Y-%m-%d',time.localtime(time.time())))5.直接获取当前时间的字符串调用time.ctime()函数可以返回当前时间的字符串。【例题】使用time.ctime()函数的例子。importtimeprint(time.ctime())6.2自定义和使用模块6.2.1创建自定义模块6.2.2导入模块6.2.1创建自定义模块可以把函数组织到模块中。在其他程序中可以引用模块中定义的函数。这样可以使程序具有良好的结构,增加代码的重用性。模块是一个.py文件,其中包含函数的定义。【例题】创建一个模块mymodule.py,其中包含2个函数PrintString()和sum(),代码如下:defPrintString(str):print(str)defsum(num1,num2):print(num1+num2)6.2.2导入模块【例题】假定上一例题中创建的模块mymodule.py保存在与本例题(6-30.py)同一目录下,引用其中包含的函数PrintString()和sum(),代码如下:importmymodule#导入mymodule模块mymodule.PrintString("HelloPython")#调用PrintString()函数mymodule.sum(1,2)#调用sum()函数运行结果如下:HelloPython36.3第三方模块的使用6.3.1第三方模块的使用6.3.2jieba库的使用6.3.3turtle库的使用6.3.4requests库的使用6.3.1第三方模块的使用在进行Python程序开发时,除了可以使用Python内置的标准模块外,还有很多第三方模块可以使用。这些第三方模块可以在Python官方推出的网站中下载(/)。第三方模块需要先下载并安装,然后就可以像使用标准模块一样导入并使用了。下载和使用第三方模块可以使用Python提供的pip命令实现。jieba是Python中一个重要的第三方中文分词函数库。importjiebaprint(jieba.lcut("中华人民共和国是一个伟大的国家"))['中华人民共和国','是','一个','伟大','的','国家']jieba库是第三方库,不是Python安装包自带的,需要通过pip指令安装。:\>pipinstalljieba#或者pip3installjiebajieba库的概述精确模式:将句子最精确的切开,适合文本分析。全模式:将句子中所有可以成词的词语都扫描出来,速度非常快,但是不能消除歧义。搜索引擎模式:在精确模式的基础下,对长词再次切分,提高召回率,适合用于搜素引擎分词。jieba库支持的3种分词模式函数描述jieba.cut(s)精确模式,返回一个可迭代的数据类型jieba.cut(s,cut_all=True)全模式,输出文本s中所有可能单词jieba.cut_for_search(s)搜索引擎模式,适合搜索引擎建立索引的分词结果jieba.lcut(s)精确模式,返回一个列表类型,建议使用jieba.lcut(s,cut_all=True)全模式,返回一个列表类型,建议使用jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型,建议使用jieba库解析【例题】分别采用精确模式、全模式和搜索引擎模式对词语“这个平台售卖的商品质量好且价格优惠”进行分词。【例题】精确模式实现分词功能的代码如下:importjiebaprint(jieba.lcut("这个平台售卖的商品质量好且价格优惠"))运行结果如下:['这个','平台','售卖','的','商品质量','好且','价格','优惠']【例题】全模式实现分词功能的代码如下:importjiebaprint(jieba.lcut("这个平台售卖的商品质量好且价格优惠",cut_all=True))运行结果如下:['这个','平台','售卖','的','商品','商品质量','品质','质量','好','且','价格','优惠']【例题】搜索引擎模式实现分词功能的代码如下:importjiebaprint(jieba.lcut_for_search("这个平台售卖的商品质量好且价格优惠"))运行结果如下:['这个','平台','售卖','的','商品','品质','质量','商品质量','好且','价格','优惠']

6.3.3turtle库的使用

turtle库是Python语言中一个很流行的绘制图像的函数库。使用turtle库,需要有这样一个概念:想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始。它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

6.3.3turtle库的使用

turtle绘图坐标系如图所示,图的中间(0,0)坐标处为小海龟,小海龟的头朝向前进方向。turtle库中的常用函数函数原型具体说明turtle.setup(width,height,startx,starty)设置主窗体的大小和位置。参数width和height表示启动窗口的宽度和高度。参数startx和starty表示窗口启动时,窗口左上角在屏幕中的坐标位置(窗口左上角的x坐标和y坐标)turtle.penup()抬起画笔,之后移动画笔不绘制形状。与turtle.pendown()函数是一组turtle.pendown()落下画笔,之后移动画笔将绘制形状。与turtle.penup()函数是一组turtle.pensize(width)设置画笔宽度。参数width是设置的画笔线条宽度,如果为None或者为空,则函数返回当前画笔宽度turtle.pencolor(colorstring)设置画笔颜色,无参数时返回当前画笔颜色。函数参数有两种形式:①turtle.pencolor(colorstring),colorstring表示颜色的字符串,例如“red”、“blue”等;②turtle.pencolor((r,g,b)),(r,g,b)表示颜色对应的RGB数值,例如(51,204,140)等turtle库中的常用函数函数原型具体说明turtle.fd(distance)向小海龟当前行进方向前进distance距离。参数distance为行进距离的像素值,当值为负数时,表示向相反方向前进turtle.forward(distance)向小海龟当前行进方向前进distance距离。参数distance为行进距离的像素值,当值为负数时,表示向相反方向前进turtle.backward(distance)向小海龟当前行进的相反方向前进distance距离。参数distance为行进距离的像素值,当值为负数时,表示向相反方向前进turtle.seth(to_angle)通过设置绝对角度值改变画笔的行进方向。参数to_angle为角度的整数值。turtle库的角度坐标体系如图6-2所示turtle库中的常用函数函数原型具体说明turtle.circle(radius,extent=None)‌根据半径radius绘制extent角度的一个弧形。参数radius为圆的半径,当radius值为正数时,圆心在当前位置左侧;当radius值为负数时,圆心在当前位置右侧。‌参数extent为可选参数,表示绘制的弧形角度,当无该参数或参数为None时,绘制整个圆形(相当于360度);当extent的值为正数时,顺小海龟当前方向绘制弧形;当extent的值为负数时,逆小海龟当前方向绘制弧形。turtle.circle()函数的绘图模式如图6-3所示turtle.goto(x,y)让处于任何位置的小海龟移动到某一个坐标的位置。参数x和y表示坐标位置turtle.left(angle)‌控制小海龟向左旋转指定的角度。参数angle‌是旋转的角度值turtle.right(angle)控制小海龟向右旋转指定的角度。参数angle‌是旋转的角度值

turtle库的角度坐标体系

turtle.circle()函数的绘图模式【例题】绘制如图所示的蟒蛇。要求:程序代码启动一个1300像素宽、800像素高的窗口,该窗口的左上角是屏幕的左上角。【例题】importturtle#引入turtle库(绘制图像的函数库)defdrawSnake(rad,angle,len,neckrad):foriinrange(len):#循环5次绘制5段蟒蛇身体

turtle.circle(rad,angle)#40像素为半径,绘制80度的弧线turtle.circle(-rad,angle)#反向40像素为半径,绘制80度的弧线

turtle.circle(rad,angle/2)#40像素为半径,绘制80/2度的弧线作为脖子

turtle.fd(rad)#向前绘制40像素直线,表示向前直线爬行移动,作为脖子的直线部分

turtle.circle(neckrad+1,180)#蛇头转向,弧度180度表示绘制半圆

turtle.fd(rad*2/

温馨提示

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

评论

0/150

提交评论