Python基础教程-第6章-代码复用—模块-课件

PPT
  • 阅读 93 次
  • 下载 0 次
  • 页数 60 页
  • 大小 4.570 MB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python基础教程-第6章-代码复用—模块-课件
可在后台配置第一页与第二页中间广告代码
Python基础教程-第6章-代码复用—模块-课件
可在后台配置第二页与第三页中间广告代码
Python基础教程-第6章-代码复用—模块-课件
可在后台配置第三页与第四页中间广告代码
Python基础教程-第6章-代码复用—模块-课件
Python基础教程-第6章-代码复用—模块-课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 60
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Python基础教程-第6章-代码复用—模块-课件.ppt,共(60)页,4.570 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2404.html

以下为本文档部分文字说明:

学院系部名称主讲:授课教师姓名Python基础教程第6章代码复用—模块Python基础编程Python中,库Library、包Package、模块Module,统称为模块。Python自带了功能丰富的标准库,另外还有数量庞大的各种第三方库。使用这些

功能的基本方法就是使用模块。通过函数,可以在程序中重用自己的代码;通过模块,则可以重用别的程序中的代码。本章的目标是掌握模块的使用。第6章代码复用—模块Python基础编程【教学导航】学习目标1.了解模块的的概念2.掌握模块的使用3.了解包的概念4.掌握常用模块的操作教学重点模块的使用、常

用模块的操作教学方式案例教学法、分组讨论法、自主学习法、探究式训练法课时建议6课时Python基础编程本章主要内容Python中的包模块概述模块的使用123常用模块介绍4实训65Python基础编程第6章代码复用—模块模块是一个保存了Python

代码的文件。模块能定义函数、类和变量。模块中也能包含可执行的代码。模块分为三种:自定义模块、内置标准模块、开源模块(第三方)。[学习目标]1.了解模块的定义2.了解命名空间与模块的关系Python基础编程6.1.1模块定义模块(Module)是用来组织Pytho

n程序代码的一种方法。当程序的代码量比较大时,可以将代码分成多个彼此联系又相互独立的代码段,而每个代码段可能包含数据成员和方法的类(“数据成员和方法的类”是面向对象程序设计的说法,在没有面向对象程序设计的基础时,可以理解为数据和程序代码的总和)。这样的

代码段是共享的,所以可将代码段通过导入(Import)的手段加入到正在编写的程序中,让程序使用模块中这些可共享的代码段。这样看来,模块是一个包含诸多可共享的代码段的组织单位。还有一个更大的单位,称为包,它是用来组织模块的。Python基础编程6.1.1模块定义模块

的概念是站在逻辑结构层面建立的概念,它在磁盘中的存在形式仍然是文件。模块的文件名就是模块名加上扩展名.py。模块文件名应尽量使用小写命名,首字母保持小写,尽量不要用下画线(除非多个单词,且数量不多的情况)模块可以理解为是一个包含了函数和变量的py文件。在你的程序中引入了

某个模块,就可以使用其中的函数和变量。模块也是Python对象,具有随机的名字属性用来绑定或引用。简单地说,模块就是一个保存了Python代码的文件。模块中能定义函数、类和变量。模块也能包含可执行的代码。Python基础编程6.1.1模块定义库:具有相

关功能模块的集合。这也是Python的一大特色,即具有强大的标准库、第三方库及自定义模块。标准库:就是下载安装的Python中那些自带的模块,要注意的是,里面有一些模块是看不到的,比如像sys模块,这与Linux下看不到cd命令是一样的。第三方库:就是由其他的第三方机构发

布的具有特定功能的模块。自定义模块:用户可以自行编写模块,然后使用。Python基础编程6.1.2命名空间命名空间是名称(标识符)到对象的映射。模块有自己唯一的命名空间。变量作用域就是变量的使用范围。确定一个变量的作用域,首先要确定变量是否在其局部命名空间,不在其局部命名空间

时,再查找是否在全局命名空间,最后在内置命名空间中查找。因此,变量作用域与命名空间是有关联的。如果用户自己创建了一个模块mymodule,并且用户要在程序中使用模块mymodule中的函数(方法)fun(),则需要使用mymod

ule.fun()形式,这实际上是指定了模块的命名空间。即使在不同的模块中有相同的函数(方法),因为使用了命名空间,也不至于产生使用上的冲突。Python系统提供了几个内置函数用于支持模块。它们是:__import__()函数,它能实现与import语句相

同的功能;globals()和locals()函数,分别返回调用者的全局命名空间或局部命名空间。Python基础编程6.2模块的使用在Python解释器上不能直接使用函数库中的函数,因为这些函数都封装在某一函数库

中,要使用库中的某一函数,先要导入相应的函数库,或者称导入模块。[学习目标]1.了解模块的导入2.掌握模块多种导入方式3.了解模块的定位4.掌握模块的查找5.了解自定义模块时外层代码的处理Python

基础编程6.2.1模块导入模块使用前需要导入,导入后才能执行。所谓执行,就是被导入的模块中定义的全局变量被赋值、类及函数的声明将被执行。导入模块使用import语句和from„import语句。导入方法有以下三种。方法1:import<库名>方法2:imp

ort<库名>as<新名字>方法3:from<库名>import<函数名>|*Python基础编程6.2.1模块导入对于第(1)种方法,使用函数时要写成:<库名>.<函数名>;对于第(2)种方法,使用函数时要写成:<新名字>.<函数名>;对于第(

3)种方法,直接写函数名就行。1.import语句想使用Python源文件,只需在另一个源文件中执行import语句,语法如下:import<库名>使用import语句可以导入整个模块。例如:importsys这是导入Python标准库的sys模块。sys模块

提供了许多函数和变量来处理Python运行时环境的不同部分。Python基础编程6.2.1模块导入import语句执行的过程是:在搜索路径中找到指定的模块,然后加载该模块。如果在一个程序的顶层导入指定模块,则所指定模块的作用域是全局的;如果在函数中导入,那么它的作用域是局部的。

搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块hello.py,需要把命令放在脚本的顶端。当解释器遇到import语句,如果模块在当前的搜索路径中就会被导入,如例6-2-1所示。Python基础编程6.2.1模块导入以上实例输出结果如下:1.414213562373

0951导入模块后,必须要通过“模块名.函数名”调用模块中的函数,不能直接使用模块中的函数名,否则会报错,如上例中,直接使用“print(sqrt(2))”语句,将报“name'sqrt'isnotdefined”错误。因为在当前命名空间

下,不包括sqrt()函数的定义。不管执行了多少次import。一个模块只会被导入一次,这样可以防止导入模块被一遍又一遍地执行。Python基础编程6.2.1模块导入2.import„as„语句在例6-2-1中,使用imp

ortmath导入数学模块,此时调用函数时,函数前面需要添加模块名,如math.sqrt()。如果模块名字比较长或名称可能重复,或不想直接使用模块名进行调用,这时可以使用import„as„语句,语法如下:import<库名>as<新名字>使用as创建别名,然后再

通过别名进行模块内函数调用,调用格式为“别名.函数名”。操作如例6-2-2所示。例6-2-2导入数学模块。Python基础编程6.2.1模块导入以上实例输出结果如下:3.from„import语句有时候,需

要在默认空间下直接使用某模块的相关函数,此时可以使用from„import语句。Python的from语句从模块中导入一个指定的部分到当前命名空间中。语法如下:from<库名>import<函数名>例如,要导入数学模块math的sqrt函数,使用如下语句:frommathi

mportsqrtPython基础编程6.2.1模块导入这个声明不会把整个math模块导入到当前的命名空间中,它会将math中的sqrt单个引入到执行这个声明的模块的全局符号表,此时,不可使用“模块名.函数名”进行调用,需直接使用从模块中导入的函

数名。实例如例6-2-3所示例6-2-3导入数学模块中的单个函数到当前命名空间。以上实例输出结果如下:4.from„import*语句from„import*语句的语法格式如下:from模块名import*

from„import*语句可以导入模块的某些属性,也可以使用“frommoduleimport*”导入所有属性。Python基础编程6.2.1模块导入把一个模块的所有内容全都导入到当前的命名空间也是可行的,如导入math模块的

全部内容,只需使用如下声明:frommathimport*这提供了一个简单的方法来导入一个模块中的所有项目。使用这种导入方法和第三种方式相似,也不可使用“模块名.函数名”进行调用,需直接使用模块中的函数名。然而这种

声明不该被过多地使用,否则内存消耗比较大。Python基础编程6.2.2模块定位查找1.定位模块当导入一个模块,Python解释器对模块位置的搜索顺序是:●当前目录。●如果不在当前目录,Python则

搜索在shell变量PYTHONPATH下的每个目录。●如果还找不到,Python会查看默认路径。Windows下,默认路径一般是Python安装路径。UNIX下,默认路径一般为/usr/local/lib/python/。模块

搜索路径存储在system模块的sys.path变量中。变量中包含当前目录、PYTHONPATH和由安装过程决定的默认目录。Python基础编程6.2.2模块定位查找2.模块的查找当用户需要导入一个模块时,用户会使用import命令在搜索路径中查找指定模块

的文件名。搜索路径是一个特定目录的集合,Python系统只在这些特定的搜索路径中查找模块文件名。这个特定的目录是Python系统安装时确定的默认搜索路径。默认搜索路径被保存在sys模块的sys.path变量中,用户可以使用命令查看。实例如例6-2-4所示。例6-

2-4查看Python默认搜索路径。Python基础编程6.2.2模块定位查找以上实例输出结果如下:这是前面页命令产生的结果,是一个列表。可以通过append()方法向sys.path变量中增加一个目录:sys.path.appe

nd('要增加的目录路径’)如果是用户自己建立的模块,应该将模块的文件(例如前面说的mymodule.py)存放在指定的目录中。Python基础编程6.2.2模块定位查找当Python系统解释器在标准模式下启动时,一些模块会被解释器自动导入,它们是与系统操作相关联的模块,

如:builtins模块。Python中有些内置函数,不需要导入模块,就可以直接使用,例如abs()。Python基础编程6.2.3自定义模块调用在规范的代码中,通常都会有一句“if__name__=="__ma

in__":”作为程序的入口,但到目前为止,发现没有这么一句代码,程序也能正常运行。Python文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的Python脚本中被调用(模块重用)执行。之前,所有的任务练习都采用第一种方法,直接作为脚本执行。但实际上,模块

就是一个普通的Python程序文件,任何一个普通的Python文件都可以作为模块导入。在Python文件作为模块导入的时候,有些代码不能被执行,否则会出问题。采用“if__name__="__main__":”写法,表示如果是外部文件调用,不执行此处代码。__name__是指示当前py文件调

用方式的方法。如果它等于“__main__”就表示直接执行,如果不是,则用来被别的文件调用,这个时候if判断结果就为False,那么就不执行外层的代码。Python基础编程6.2.3自定义模块调用“if__name__=='mai

n':”的作用就是控制这两种情况执行代码的过程,在“if__name__=='main':”下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。操作实例

如例6-2-5所示。例6-2-5创建stu.py文件,代码如下:以上实例输出结果如下:Python基础编程6.2.3自定义模块调用直接执行stu.py,结果如上,输出列表原始数据和学生信息两行字符串。即,“if__name__=="__main__":”语句

之前和之后的代码都被执行。然后在同一文件夹新建名称为import_stu.py的脚本中,输入如下代码:importstu执行import_stu.py脚本,输出结果如下:[{'stu_age':18,'stu_id':1,'stu_name':'张三’}]结果

中只输出了列表数据。即,“if__name__=="__main__":”之前的语句被执行,之后的没有被执行。Python基础编程6.2.3自定义模块调用每个Python模块(Python文件,也就是此处的stu.py和import_stu.py)

都包含内置的变量__name__。当运行模块被执行时,__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__

”等于当前执行文件的名称(包含了后缀.py),进而当模块被直接执行时,“__name__=='main'”的结果为真。示例如下。复制stu.py代码,保存为stu1.py,在stu1.py程序的“if__name__=="__main__":”之前加入“pr

int(__name__)”,即将__name__打印出来。文件内容和结果如下:可以看出,此时变量__name__的值为“__main__”,然后在同一文件夹中新建名称为import_stu1.py的脚本,输入如下代码:Python基础编程6.2.3自定义模块调用importstu1执行

import_stu1.py脚本,输出结果如下:[{'stu_name':'张三','stu_id':1,'stu_age':18}]stu1然后在同一文件夹中新建名称为import_stu.py的脚本,只输入如下

代码:importstu执行import_stu.py脚本,输出结果如下:[{'stu_age':18,'stu_name':'张三','stu_id':1}]此时,test.py中的__name__变量值为stu1,不满足__name__=="__main__"的条件,因此,无法执行其

后的代码,不能输出“stul”Python基础编程6.3Python中的包变量的作用域是Python学习中一个必须理解和掌握的知识。本节从局部变量和全局变量开始全面解析Python中的变量作用域。[学习目标]1.了解包的

概念2.掌握包的使用Python基础编程6.3.1包的概念包是在模块之上的概念,为了方便管理而将文件进行打包。包目录下第一个文件便是__init__.py,然后是一些模块文件和子目录,假如子目录中也有__init__.py,那么它就是这个包的子包了。常见的包结构如图6-3-1所

示。包结构是一个分层次的文件目录结构,它定义了一个由模块及子包和子包下的子包等组成的Python的应用环境。包是模块更上一层的概念,一个包可以包含多个模块。包能够帮助用户将有联系的模块组织在一个包内;同时还可以解决模块名冲突。图6-3-1常见的包结构Python基础编程6.3

.1包的概念当模块名或者包名过长时,为了后面的程序编写,可以给其取别名,格式如下import包名as别名建立包的方法为:在Python的工作目录下的LIB子目录中建立一个目录,这个建立的目录名就是包的名字,将模块置入包(目录)内。有些包中有内置函数,

导入包名之后,可以直接通过“包名.函数名”来调用函数。我们知道包是模块的合集,如果使用到了包中的某些模块,一般情况下需要通过“包名.模块名.函数名”来调用相应的函数,为了方便编写程序,可以通过“from包名import模块名”直接导入模块,这样就不需要再写包名了。如果包中

还有子包的话,同样为了方便程序编写,可以通过“from包名.子包名import模块名”导入模块。Python基础编程6.3.2包使用实例(1)创建一个目录web,在web目录中写入stu.py、tea.py、admin.py三个文件。stu.py这个文件有如下源代码:def

Stu():print("I'mastudent")同样的,另外两个文件中的函数如下(2)tea.py含有函数Tea(),代码如下:defTea():print("I'mateacher”)(3)admin

.py含有函数Admin(),代码如下:defAdmin():print("I'maadministrator")(4)在web目录下创建空文件,命名为__init__.py。Python基础编程6.3.2包使用实

例在不使用包的方式下,直接在web目录下新建Python文件,可以直接使用stu.py、tea.py、admin.py这三个文件内容。●第一种方式,新建py文件作启动文件,文件名可任意取,保存在web目录下,如例6-3-1所示。例6-3-1使用from...import

...导入文件模块实例。上述实例输出结果如下:I'mastudentI'mateacherI'maadministratorPython基础编程6.3.2包使用实例●第二种方式,新建py文件作启动文件,文件名可任意取,保存在web目录下,如例6-3-2

所示。例6-3-2使用import导入文件模块实例。例6-3-2和例6-3-1实例输出相同,输出结果如下:如上,为了举例,我们在每个文件中只放置了一个函数,但其实可以放置多个函数。也可以在这些文件中定义Python的类,然后为这些类创建一个包。Py

thon基础编程6.4常用模块介绍本节介绍time和calendar标准库、数学函数math及json模块,而random这个库是全国计算机等级考试二级Python语言程序设计考试大纲(2018年版)中第七部分—Python计算生态中第1点(标准库)中必考的一个库

。time标准库是选考的一个库。[学习目标]1.了解并掌握time标准库的使用2.了解并掌握calendar标准库的使用3.了解并掌握math模块的使用4.了解并掌握json数据的使用Python基础编程6.4.1时间与日期在数据的统计分析方面,

时间是一个很重要的因素。很多时候,只考虑一定时期内的数据,时间对数据的有效性有很大影响。在数据分析时,Python需要对数据的时效性有准确的把握。在程序中,Python能用很多方式处理日期和时间数据。Python提供了一

个time和calendar模块用来处理日期和时间。1.time模块time模块包含了以下内置函数,既有与时间处理相关的,也有用于转换时间格式的,如表6-4-1所示。序号函数及描述1time.altzone返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治的东部会返回负值

(如西欧,包括英国)。它对夏令时启用地区才能使用2time.asctime([tupletime])接受时间元组并返回一个可读的形式为“SatJul1310:34:092019”(2019年7月13日周六18时07分14秒)的24个字符的字符串P

ython基础编程6.4.1时间与日期序号函数及描述3time.clock()用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,它比time.time()更有用4time.ctime([secs])作用相当于asctime

(localtime(secs)),未给参数相当于asctime()5time.gmtime([secs])接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为06time.localtime([secs])接收时间辍(1970纪元后经

过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)7time.mktime(tupletime)接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)8ti

me.sleep(secs)推迟调用线程的运行,secs指秒数9time.strftime(fmt[,tupletime])接收时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定Python基础编程6.4.1时间与日期time模块包含了以下2个非常重要的属性如表6-4-2所示。

表6-4-2time模块属性值一览表序号函数及描述10time.strptime(str,fmt='%a%b%d%H:%M:%S%Y')根据fmt的格式把一个时间字符串解析为时间元组11time.time()返回当前

时间的时间戳(1970纪元后经过的浮点秒数12time.tzset()根据环境变量TZ重新初始化时间相关设置序号属性及描述1time.timezone属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒

数(>0,美洲;<=0大部分的欧洲、亚洲、非洲)2time.tzname属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带夏令时的Python基础编程6.4.

1时间与日期2.ticks计时单位时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python附带的受欢迎的time模块下有很多函数可以转换常见日期格式。如函数time.time()用ticks计时单位返回从12:00am,Ja

nuary1,1970(epoch)开始记录的当前操作系统时间,如例6-4-1所示。例6-4-1时间戳实例。以上实例输出结果如下importtime;当前时间戳是:#引用time模块1556120860.6987607ticks=time.time()print("当前时间戳是:",ticks)

ticks计时单位最适于日期运算,但是1970年之前的日期就无法以此表示。目前,UNIX和Windows只支持到2038年。Python基础编程6.4.1时间与日期3.时间元组使用localtime可以获取当前时间,获取的时间使用时间元组方式展示。从返回浮点数的时间戳方式向时间元组

转换,只要将浮点数传递给如localtime之类的函数。例6-4-2获取当前时间实例以上实例输出结果如下importtime;当前时间是:localtime=time.localtime(time.time())time.struct_time(tm_year=2019,

print("当前时间是:",localtime)tm_mon=4,tm_mday=28,tm_hour=8,tm_min=39,tm_sec=42,tm_wday=6,tm_yday=118,tm_isdst=0)localtime将时间展示为元组方式,很多Python函数用一个元

组装起来的9组数字处理时间,如表6-4-3所示。Python基础编程6.4.1时间与日期上述元组也就是struct_time元组序号字段属性值04位数年tm_year如20191月tm_mon1到122日tm_may1到313小时tm_hour0到234分钟tm_min0到

595秒tm_sec0到61(60或61是闰秒)6一周的第几日tm_wday0到6(0是周一)7一年的第几日tm_yday1到3668夏令时tm_isdst-1,0,1,-1用于决定是否为夏令时Python基础编程6.4.1时间与日期4.获取格式化的时间用户可以根据需求选取各种格式,但

是最简单地获取可读的时间模式的函数是asctime(),如例6-4-3所示。例6-4-3获取格式化时间实例。importtime;localtime=time.asctime(time.localtime(time.time()))prin

t("当前时间是:",localtime)以上实例输出结果如下:当前时间是:SunApr2808:59:2920195.获取某月日历calendar模块有很多的方法用来处理年历和月历数据,如例6-4-4所示。例6-4-4获取日历实例importcalendarcal=calend

ar.month(2019,9)print("选择查看的日历如下:")print(cal)Python基础编程6.4.1时间与日期以上实例输出结果如下:选择查看的日历如下:Python基础编程6.4.2math库Python系统构造

了许多的函数库,其中用户用得最多的是数学类函数库math。math库中包含了数学公式,在使用数学公式前需要导入math库。1.Python数学函数Python数学函数如表6-4-4所示。表6-4-4Python数学函数一览表函数返回值(描述)a

bs(x)返回x数字的绝对值,如abs(-10)返回10ceil(x)返回x数字的上入整数,如math.ceil(4.1)返回5cmp(x,y)如果x<y返回-1,如果x==y返回0,如果x>y返回1exp(x)返回e的x次幂(ex),如math.exp(1)返回2.7182818

28459045fabs(x)返回x数字的绝对值,如math.fabs(-10)返回10.0floor(x)返回x数字的下舍整数,如math.floor(4.9)返回4log(x)如math.log(math.e)返回1.0,math.log(100,

10)返回2.0log10(x)返回以10为基数的x的对数,如math.log10(100)返回2.0Python基础编程6.4.2math库函数返回值(描述)max(x1,x2,...)返回给定参数的最大

值,参数可以为序列min(x1,x2,...)返回给定参数的最小值,参数可以为序列modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示pow(x,y)x**y运算后的值round(x[,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数

sqrt(x)返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回2+0jPython基础编程6.4.2math库2.Python三角函数Python包括的三角函数如表6-4-5所示。表6-4-5Python三角函数一

览表函数描述acos(x)返回x的反余弦弧度值asin(x)返回x的反正弦弧度值atan(x)返回x的反正切弧度值atan2(y,x)返回给定的x及y坐标值的反正切值cos(x)返回x的弧度的余弦hypot(x,y)返回欧几里得范数sqrt(x*x+y*y)sin

(x)返回的x弧度的正弦值tan(x)返回x弧度的正切值degrees(x)将弧度转换为角度,如degrees(math.pi/2),返回90.0radians(x)将x角度转换为弧度Python基础编程6.4.2math库3.Python数学常量Python数学常量如表6-4-6所示表6

-4-6Python数学常量一览表4.常用数学函数(1)ceil(x)函数。返回大于x的最小整数,如例6-4-5所示。例6-4-5ceil()函数实例。以上实例输出结果如下:frommathimport*2print(c

eil(1.7))-1print(ceil(−1.7))常量描述pi数学常量pi(圆周率,一般以π来表示)e数学常量e,e即自然常数(自然常数)Python基础编程6.4.2math库(2)factor

ial(x)函数。当x是正整数时,返回x的阶乘,否则提示错误信息,如例6-4-6所示。例6-4-6factorial()函数实例。以上实例输出结果如下:Frommathimport*3628800print(factorial(10)

)其他如sin(x)、cos(x)、exp(x)、sqrt(x)、log(x[,base])、log10(x)、log2(x)等数学函数,和数学中的函数含义相同,直接使用即可,也可通过查Python的帮助信息进行操

作(3)isinf()函数。inf、-inf函数表示正负无穷大的数。当x为正负无穷大数时,返回True;否则返回False。当x为整数时,返回False。而对浮点数来说,Python系统使用64位存储,表示整数范围为−1.7e308~1.

7e308,当测试数据在这个范围之外,isinf()函数返回True,否则返回False,如例6-4-7所示。Python基础编程6.4.2math库例6-4-7isinf()函数实例frommathimport*pr

int(("值为整数时,isinf函数结果是:",isinf(100))print(("值的范围介于-1.7e308~1.7e308时,isinf函数结果是",isinf(1.7e308))print(("值大于1.7e308时,is

inf函数结果是:",isinf(1.7e309))print(("值小于-1.7e308时,isinf函数结果是:",isinf(-1.7e309))以上实例输出结果如下:值为整数时,isinf函数结果是:False值的范围介于−1.7e308~1.7e308时,isi

nf函数结果是:False值大于1.7e308时,isinf函数结果是:True值小于−1.7e308时,isinf函数结果是:True(4)isnan()函数。当x不是数字时,isnan(x)函数返回True;否则返回False。Python基础编程6.4.2math库在Python

系统中,“x不是数字”是指NaN(NotaNumber)。NaN是IEEE754标准中定义的某种运算结果,如一个无穷大的数乘0,两个无穷大的数及所有与NaN有关的操作结果。NaN实际上是浮点数运算过程中产生的不确定数,两个NaN是无法比较的,如例6-4-8

所示。例6-4-8isnan()函数实例。frommathimport*x=1.7e309y=1.2e309print("x=",x)print("isnan(x)值是=",isnan(x))print("y=",y)print("isnan(y)值是=",isnan(y))z1=x/y#只有运

算才会产生isnan()为True的结果print("z1值是=",z1)z2=float('nan')print("z1,z2比较结果:",z1==z2)#两个NaN是无法比较的Python基础编程6.4.2math库以

上实例输出结果如下:x=infisnan(x)值是=Falsey=infisnan(y)值是=Falsez1值是=nanz1,z2比较结果:False(5)trunc(x)函数。返回与x最近的、靠近数字0一方的整数,如例6-4-9所

示。例6-4-9trunc(x)函数实例。以上实例输出结果如下:frommathimport*print(trunc(1.7))1print(trunc(−1.7))-1Python基础编程6.4.3json模块json(JavaScriptObjectNotation,JS对象标记)是一种轻

量级的数据交换格式。它使得人们很容易地进行阅读和编写,同时也方便了机器进行解析和生成,适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。json格式的字符串,一种用来进行数据交互的格式,看起来像Python类型的字符串就是json字

符串。在Python中json里面可以包含用方括号括起来的数组,也就是Python中的列表json类型转换到Python的类型对照表如表6-4-7所示表6-4-7json类型转换到Python的类型对照表json类型Pyt

hon类型ObjectdictArraylistStringunicodenumber(int)int,longPython基础编程6.4.3json模块json模块的方法:json.loads()#把json字符串转化为Python类型json.dumps(python类型

,ensure_ascii=False,indent=2)#把Python类型转化为json字符串,ensure_ascii=False能够保证写入文件的时候为中文,indent控制写入的换行和空格jso

n字符串的注意点:json字符串中的键值对需要使用双引号。json类型Python类型number(real)floatTrueTrueFalseFalseNullNonePython基础编程6.4.3json模块通过json我们能够实现json字符串和Python数据类型

的相互转化,如图6-4-1所示。图6-4-1json字符串与Python类型转换1.字典转化为json字符串json.dump/json.dumps方法:dump的第一个参数是对象字典,第二个参数是文件对象,可以直接将转换后的j

son数据写入文件,dumps的第一个参数是对象字典,其余都是可选参数。dump和dumps的可选参数相同,这些参数都相当实用,现将用到的参数记录如下。ensure_ascii默认为True,保证转换后的json字符串中全部是ASCII字符,非ASCII

字符都会被转义。如果数据中存在中文或其他非ASCII字符,最好将ensure_ascii设置为False,保证输出结果正常。Python基础编程6.4.3json模块indent缩进,默认为None,没有缩进,设置为正整数时,输出

的格式将按照indent指定的半角空格数缩进,相当实用。separators设置分隔符,默认的分隔符是(',',':'),如果需要自定义json中的分隔符,例如调整冒号前后的空格数,可以按照(item_separato

r,key_separator)的形式设置。sort_keys默认为False,设为True时,输出结果将按照字典中的key排序,如例6-4-10所示。例6-4-10Python类型转化为json字符串操作实例。以上实例输出结果如下:注意:在P

ython类型中,是区分大小写的,True中的T需要大写。json类型中,true为小写Python基础编程6.4.3json模块2.json字符串转为字典使用json.load/json.loads方法来转换。两个方法功能类似,可选参数也相同,最大的区别在于,json.lo

ad方法接受的输入,即第一个参数,是包含json数据的文件对象,如open方法的返回对象,json.loads接受的输入是json字符串,而非文件对象。从输入类型的区别也可以看出两者的使用场合。可选参数包括是否需要转换整型、浮点型等数值的参数。jso

n字符串转化为Python类型操作示例如例6-4-11所示。例6-4-11json字符串转化为Python类型操作实例。以上实例输出结果如下:Python基础编程实训6:使用模块编写学生信息管理系统面向对象编程三大特性是封装、继承和多态。实现多态的技术基础除了继承,还有方法重

写。本节的目标是了解并掌握方法重写与运算符重载。【任务描述】在教材第5章的实训5中,建立了一个学生信息管理系统,使用列表中嵌套字典保存学生数据,初始数据如下:stu_list=[{"stu_name":"张三","stu_id":1,"stu_age":18}]Python基础编程实训

6:使用模块编写学生信息管理系统使用函数实现操作信息提示,提示内容为如下所示:欢迎访问学生信息管理系统,请按提示输入操作!1.添加学生信息2.删除学生信息3.修改学生信息4.查询学生信息5.浏览学生信息6.退出系统请输入要操作的序号:Python基础

编程实训6:使用模块编写学生信息管理系统用户输入相关的操作序号后,能调用相应的方法函数,实现相应的操作。现将其代码进行修改,改为模块的方式进行操作。使用模块装项目进行封装,要求:(1)创建包:stu_system_manage。

(2)按功能封装两个模块:stu_info_manage.py和stu_edit_manage.py,均保存到stu_system_manage中。(3)创建模块:system_untils.py,模块中封装系统功能显示函数。Python基础编程实训6:使用模块编写学生信息管理

系统【操作提示】使用包来管理模块,就是创建名为stu_system_manage的文件夹来保存Python文件。使用包时,为了让其他使用者能正确调用,需要在文件夹下添加“__init__.py”文件。注意:在其他文件中调用包中的内容,需要带包名导入模块。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?