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

下载本文档

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

文档简介

Python3基础教程第2版慕课版单元6函数与模块任务6-1:定义个人综合所得税计算函数【任务目标】修改任务5-1中实现的个人综合所得税计算程序,定义一个函数来完成个人综合所得税计算,将月工资及各项扣除费用作为参数传递给函数,函数返回应缴纳的个人综合所得税。调用函数,完成表6-1中3名员工的个人综合所得税计算。【任务实施】演示过程……6.1函数在实现大型项目时,程序员往往会将需要重复使用的代码提取出来,将其定义为函数,从而减轻编程工作量,也使程序结构简化。本节主要内容:定义函数调用函数函数的参数函数嵌套定义lambda函数递归函数函数列表程序设计方法简介6.1.1定义函数def语句用于定义函数,其基本格式如下。def函数名(参数表):

函数语句

return返回值参数和返回值都可省略,示例代码如下。>>>defhello(): #定义函数...print('Python你好')...>>>hello() #调用函数Python你好hello()函数没有参数和返回值,它调用print()函数输出一个字符串。为函数指定参数时,参数之间用逗号分隔。下面的例子为函数定义两个参数,并返回两个参数的和。>>>defadd(a,b): #定义函数...returna+b...>>>add(1,2) #调用函数36.1.2调用函数调用函数的基本格式如下。函数名(参数表)在Python中,所有的语句都是解释执行的,不存在如C/C++中的编译过程。def也是一条可执行语句,它完成函数的定义。Python中函数的调用必须出现在函数的定义之后。在Python中,函数也是对象(function对象)。def语句在执行时会创建一个函数对象。函数名是一个变量,它引用def语句创建的函数对象。可将函数名赋值给变量,使变量引用同一个函数>>>defadd(a,b): #定义函数...returna+b...>>>add #直接用函数名,可返回函数对象的内存地址<functionaddat0x00D41078>>>>add(10,20) #调用函数30>>>x=add #将函数名赋值给变量>>>x(1,2) #通过变量调用函数36.1.3函数的参数在函数定义的参数表中的参数称为形式参数,简称形参。调用函数时,参数表中提供的参数称为实际参数,简称实参。实参可以是常量、表达式或变量。实参是常量或表达式时,直接将常量或表达式计算结果传递给形参。在Python中,变量保存的是对象的引用,实参为变量时,参数传递会将实参对对象的引用赋值给形参。1.参数的多态性多态是面向对象的一个特点,指不同对象执行同一个行为可能会得到不同的结果。同一个函数,传递的实际参数类型不同时,可获得不同的结果,体现了多态性。>>>defadd(a,b): ...returna+b #两个参数执行加法运算...>>>add(1,2) #执行数字加法3>>>add('abc','def') #执行字符串连接'abcdef'>>>add((1,2),(3,4)) #执行元组合并(1,2,3,4)>>>add([1,2],[3,4]) #执行列表合并[1,2,3,4]2.参数赋值传递调用函数时会按参数的先后顺序,依次将实参传递给形参。例如,调用add(1,2)时,1传递给a,2传递给b。Python允许以形参赋值的方式,将实参传递给指定形参。>>>defadd(a,b):...returna+b...>>>add(a='ab',b='cd') #通过赋值来传递参数'abcd'>>>add(b='ab',a='cd') #通过赋值来传递参数'cdab'采用参数赋值传递时,因为指明了形参名称,所以参数的先后顺序已无关紧要。参数赋值传递的方式称为关键字传递,此时可将形参称为关键字。3.参数传递与共享引用>>>deff(x):...x=100...>>>a=10>>>f(a) >>>a10从结果可以看出,将实参a传递给形参x后,在函数中重新赋值x,并不会影响到实参a。这是因为Python中的赋值是建立变量到对象的引用。重新赋值时,意味着形参引用了新的对象。当实参引用的是可变对象,如列表、字典等时,若在函数中修改形参,通过共享引用,实参也引用修改后的对象,示例代码如下。>>>deff(a):...a[0]='abc' #修改对象的第一个元素值...>>>x=[1,2]>>>f(x) #调用函数,传递列表对象的引用>>>x #变量x引用的列表对象在函数中被修改['abc',2]如果不希望函数内的修改影响函数外的数据,应注意避免传递可变对象的引用。如果要避免列表在函数中被修改,可使用列表的副本作为实参,示例代码如下。>>>deff(a):...a[0]='abc' #修改对象的第一个元素值...>>>x=[1,2]>>>f(x[:]) #传递列表的副本>>>x #结果显示原列表不变[1,2]还可以在函数中对列表进行复制,调用函数时实参使用引用列表的变量,示例代码如下。>>>deff(a):...a=a[:] #复制列表...a[0]='abc' #修改列表的副本...>>>x=[1,2]>>>f(x) #调用函数>>>x #结果显示原列表不变[1,2]4.有默认值的可选参数在定义函数时,可以为参数设置默认值。调用函数时如果未提供实参,则形参取默认值,示例代码如下。>>>defadd(a,b=-100): #参数b默认值为-100...returna+b...>>>add(1,2) #传递指定参数3>>>add(1) #形参b取默认值-99应注意,带默认值的参数为可选参数,在定义函数时,应放在参数表的末尾。5.接受任意个数的参数在定义函数时,如果在参数名前面使用星号“*”,表示形参是一个元组,可接受任意个数的参数。调用函数时,可以不为带星号的形参提供数据示例代码如下。>>>defadd(a,*b):...s=a...forxinb: #用循环迭代元组b中的对象...s+=x #累加...returns #返回累加结果...>>>add(1)#不为带星号的形参提供数据,此时形参b为空元组1>>>add(1,2) #求两个数的和,此时形参b为元组(2,)3>>>add(1,2,3) #求3个数的和,此时形参b为元组(2,3)6>>>add(1,2,3,4,5) #求5个数的和,此时形参b为元组(2,3,4,5)156.必须通过赋值传递的参数Python允许使用必须通过赋值传递的参数。在定义函数时,带星号参数之后的参数必须通过赋值传递示例代码如下。>>>defadd(a,*b,c):...s=a+c...forxinb:...s+=x...returns...>>>add(1,2,3) #形参c未使用赋值传递,出错Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:add()missing1requiredkeyword-onlyargument:'c'>>>add(1,2,c=3) #形参c使用赋值传递6>>>add(1,c=3) #带星号参数可以省略4在定义函数时,也可单独使用星号,其后的参数必须通过赋值传递示例代码如下。>>>deff(a,*,b,c): #参数b和c必需通过赋值传递...returna+b+c...>>>f(1,b=2,c=3)66.1.4函数嵌套定义Python允许在函数内部定义函数,示例代码如下。>>>defadd(a,b): ...defgetsum(x): #在函数内部定义的函数,将字符串转换为Unicode码求和...s=0...forninx:...s+=ord(n)...returns...returngetsum(a)+getsum(b) #调用内部定义的函数getsum...>>>add('12','34') #调用函数202注意,内部函数只能在函数内部使用。6.1.5lambda函数lambda函数也称表达式函数,用于定义匿名函数。可将lambda函数赋值给变量,通过变量调用函数。lambda函数定义的基本格式如下。lambda参数表:表达式示例代码如下。>>>add=lambdaa,b:a+b #定义表达式函数,赋值给变量>>>add(1,2) #函数调用格式不变3>>>add('ab','ad')'abad'lambda函数非常适合定义简单的函数与def不同,lambda的函数体只能是一个表达式可在表达式中调用其他的函数,但不能使用其他的语句示例代码如下。>>>add=lambdaa,b:ord(a)+ord(b) #在lambda表达式中调用其他的函数>>>add('1','2')996.1.6递归函数递归函数是指在函数体内调用函数本身。例如,下面的函数fac()实现计算阶乘。>>>deffac(n): #定义函数...ifn==0: #递归调用的终止条件...return1...else:...returnn*fac(n-1) #递归调用函数本身...>>>fac(5)120注意,递归函数必须在函数体中设置递归调用的终止条件。如果没有设置递归调用终止条件,程序会在超过Python允许的最大递归调用深度后,产生RecursionError异常(递归调用错误)。6.1.7函数列表因为函数是一种对象,所以可将其作为列表元素使用,然后通过列表索引来调用函数示例代码如下。>>>d=[lambdaa,b:a+b,lambdaa,b:a*b] #使用lambda函数建立列表>>>d[0](1,3) #调用第一个函数4>>>d[1](1,3) #调用第二个函数3也可使用def定义的函数来创建列表,示例代码如下。>>>defadd(a,b): #定义求和函数...returna+b...>>>deffac(n): #定义求阶乘函数...ifn==0:...return1...else:...returnn*fac(n-1)>>>d=[add,fac] #建立函数列表>>>d[0](1,2) #调用求和函数3>>>d[1](5) #调用求阶乘函数120>>>d=(add,fac) #建立包含函数列表的元组对象>>>d[0](2,3) #调用求和函数5>>>d[1](5) #调用求阶乘函数120Python还允许使用字典来建立函数映射,示例如下。>>>d={'求和':add,'求阶乘':fac}#用函数add和fac建立函数映射>>>d['求和'](1,2) #调用求和函数3>>>d['求阶乘'](5) #调用求阶乘函数1206.1.8程序设计方法简介程序设计方法是思考、设计、编写程序的方法,也可称为编程范式。编程范式主要分为两大范式:命令式编程范式、声明式编程范式。这两大范式衍生出最基本的面向过程范式、面向对象范式、函数式范式和逻辑式范式4种子编程范式。面向过程范式和面向对象范式属于命令式编程范式,函数式范式和逻辑式范式属于声明式编程范式。Python支持面向过程范式、面向对象范式、函数式范式等多种子编程范式。1.面向过程范式面向过程范式也称过程式编程,是一种基于计算过程或运算流程的编程范式。过程式编程将计算任务描述为操作流程或步骤,逐步实现操作流程或步骤所要求的计算功能。面向过程程序是由多个过程组合而成的,其中包含顺序、分支和循环等程序控制结构。2.面向对象范式面向对象范式用类来表示实体,对象是类的实例。数据和操作被封装在对象中,数据是对象的数据成员,操作是对象的方法成员。执行方法时,对象根据来自方法的消息执行相应的计算,以实现交互并完成任务。3.函数式范式函数式范式是一种基于递归函数计算理论的范式,其程序由一系列函数组成,执行程序便是计算这些函数并对表达式求值。例如,Python中的list(map(lambdax:x*2,range(4))表达式通过多个函数调用生成列表[0,2,4,6]。Python还支持一种新的编程范式——生态式编程。Python通过数量庞大的第三方库,构成了一个覆盖众多应用领域的计算生态。在程序中,通过使用第三方库,只需要简单的程序代码即可实现功能复杂的应用程序。任务6-2:测试变量作用域【任务目标】运行下面的程序,关注程序中全局变量和本地变量的值。#test6_07.py:测试变量作用域a=10#赋值,创建全局变量defshow():a=100#赋值,创建本地变量print('inshow():a=',a)#输出本地变量ashow()print('全局变量:a=',a)#输出全局变量a【任务实施】演示过程……6.2变量的作用域变量的作用域是变量的可使用范围,也称为变量的命名空间。在第一次给变量赋值时,Python创建变量,变量创建的位置决定了变量的作用域。本节主要内容:作用域分类global语句nonlocal语句6.2.1作用域分类Python中变量的作用域可分为4种:本地作用域、函数嵌套作用域、文件作用域和内置作用域,如图所示本地作用域:没有内部函数时,函数体为本地作用域。函数内通过赋值创建的变量、函数参数的作用域都为本地作用域。函数嵌套作用域:包含内部函数时,函数体为函数嵌套作用域。文件作用域:程序文件(也称模块文件)的内部为文件作用域。内置作用域:Python运行时的环境为内置作用域,它包含Python的各种内置的变量和函数。内置作用域和文件作用域可称为全局作用域。根据作用域范围大小,通常将变量分为两种:全局变量和本地变量。在内置作用域和文件作用域内定义的变量都属于全局变量(函数则可称为全局函数)。在函数嵌套作用域和本地作用域内定义的变量都属于本地变量,本地变量也可称为局部变量(函数则可成为本地函数或局部函数)。考察下面的代码:#文件作用域a=10 #a是全局变量defadd(b): #参数b是函数add内的本地变量

c=a+b #c是函数add内的本地变量,a是函数外部的全局变量

returncprint(add(5)) #调用函数该程序在运行过程中,会创建4个变量:a、b、c和add,a和add是文件作用域内的全局变量,b和c是函数add内部的本地变量。另外该程序还用到了print这个内置函数,它是内置作用域中的全局变量。作用域外的变量与作用域内的变量名称相同时,以“本地”优先原则,此时外部的变量被屏蔽——称为作用域隔离原则。>>>a=10 #赋值,创建全局变量a>>>defshow():...a=100 #赋值,创建本地变量a...print('inshow():a=',a) #输出本地变量a...>>>show()inshow():a=100>>>a #输出全局变量a106.2.2global语句在函数内部给变量赋值时,默认情况下该变量为本地变量。为了在函数内部给全局变量赋值,Python提供了global语句,用于在函数内部声明全局变量示例代码如下。>>>defshow():...globala #声明a是全局变量...print('a=',a) #输出全局变量a...a=100 #给全局变量a赋值...print('a=',a)>>>a=10>>>show()a=10a=100>>>a1006.2.3nonlocal语句作用域隔离原则同样适用于嵌套函数。在嵌套函数内使用与外层函数同名的变量时,若该变量在嵌套函数内没有被赋值,则该变量就是外层函数的本地变量示例代码如下。>>>deftest():...a=10 #创建test函数的本地变量a...defshow():...print('inshow(),a=',a) #使用test函数的本地变量a...show()...print('intest(),a=',a) #使用test函数的本地变量a...>>>test()inshow(),a=10intest(),a=10修改上面的代码,在嵌套函数show()内为a赋值,代码如下。>>>deftest():...a=10 #创建test函数的本地变量a...defshow():...a=100 #创建show函数的本地变量a...print('inshow(),a=‘,a) #使用show函数的本地变量a...show()...print('intest(),a=',a) #使用test函数的本地变量a...>>>test()inshow(),a=100intest(),a=10如果要在嵌套函数内部为外层函数的本地变量赋值,Python提供了nonlocal语句。nonlocal语句与global语句类似,它声明变量是外层函数的本地变量,示例代码如下。>>>deftest():...a=10 #创建test函数的本地变量a...defshow():...nonlocala #声明a是test函数的本地变量...a=100 #为test函数的本地变量a赋值...print('inshow(),a=',a)#使用test函数的本地变量a...show()...print('intest(),a=',a) #使用test函数的本地变量a...>>>test()inshow(),a=100intest(),a=100任务6-3:调用模块中的唐诗检索函数【任务目标】参考任务5-2中的唐诗检索程序,编写一个唐诗检索函数,用文件名和唐诗名称作为参数,在文件中检索唐诗。如果检索到则返回唐诗内容,否则返回空字符串。将唐诗检索函数保存在一个程序文件中,将该文件作为模块使用,调用其中的唐诗检索函数检索指定的唐诗。【任务实施】演示过程……6.3模块模块也可称为库,是一个包含变量、函数或类的程序文件。模块中也可以包含其他各种Python语句。大型系统往往将系统功能划分为模块来实现,或者将常用功能集中在一个或多个模块文件中,然后在程序文件中导入并使用模块。Python也提供了大量内置模块,并可集成各种扩展模块。本节主要内容:导入模块导入时执行模块用import还是from重新载入模块模块搜索路径嵌套导入模块查看模块对象属性__name__属性和命令行参数隐藏模块变量6.3.1导入模块模块需要先导入,然后才能使用其中的变量、函数或者类等。可使用import或from语句导入模块,基本格式如下。import模块名称import模块名称as新名称from模块名称import导入对象名称from模块名称import导入对象名称as新名称from模块名称import*1.import语句import语句用于导入整个模块,可用as为导入的模块指定一个新名称。导入模块后,使用“模块名称.对象名称”格式来引用模块中的对象。>>>importmath #导入模块>>>math.fabs(-5) #调用模块中的函数5.0>>>math.e #使用模块中的常量2.718281828459045>>>fabs(-5) #试图直接使用模块中的函数,出错Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'fabs'isnotdefined>>>importmathasm #导入模块并指定新名称>>>m.fabs(-5) #通过新名称调用模块函数5.0>>>m.e #通过新名称使用模块常量2.7182818284590452.from语句from语句用于导入模块中的指定对象,导入的对象可直接使用,不需要使用模块名称作为限定符,示例代码如下。>>>frommathimportfabs #从模块导入指定函数>>>fabs(-5)5.0>>>frommathimporte #从模块导入指定常量>>>e2.718281828459045>>>frommathimportfabsasf1 #导入时指定新名称>>>f1(-10)10.03.from…import*语句使用星号时,可导入模块顶层的所有全局变量和函数示例代码如下。>>>frommathimport* #导入模块顶层的全局变量和函数>>>fabs(-5) #直接使用导入的函数5.0>>>e #直接使用导入的常量2.7182818284590456.3.2导入时执行模块import和from语句在执行导入操作时,会执行导入模块中的全部语句。只有执行了模块,模块中的变量和函数才会被创建,才能在当前模块中使用。只有在第一次执行导入操作时,才会执行模块。再次导入模块时,并不会重新执行模块。import和from语句是隐性的赋值语句,两者的区别如下。Python执行import语句时:会创建一个模块对象和一个与模块文件同名的变量,并建立变量和模块对象的引用关系。模块中的全局对象作为模块对象的属性或方法使用。再次导入模块时,不会改变模块对象属性的当前值。Python执行from语句时:会同时在当前模块和被导入模块中创建同名变量,这两个变量引用同一个对象。再次导入模块时,会重新将被导入模块中变量的引用重新赋值给当前模块的变量。再次导入时,会将被导入模块的变量的初始值赋值给前模块的变量。示例代码如下。首先,创建模块文件test.py,其代码如下。x=100 #赋值,创建变量xprint('这是模块test.py中的输出!') #输出字符串defshow(): #定义函数,执行时创建函数对象

print('这是模块test.py中的show()函数中的输出!')可将test.py放在系统D盘根目录中,然后进入系统命令提示符窗口,在D盘根目录中执行python.exe进入Python交互环境D:\>python……>>>importtest #导入模块,下面的输出说明模块在导入时被执行这是模块test.py中的输出!>>>test.x #使用模块变量100>>>test.x=200 #为模块变量赋值>>>importtest #重新导入模块>>>test.x #使用模块变量,输出结果显示重新导入未影响变量的值200>>>test.show() #调用模块函数这是模块test.py中的show()函数中的输出!>>>abc=test #将模块变量赋值给另一个变量>>>abc.x #使用模块变量200>>>abc.show() #调用模块函数这是模块test.py中的show()函数中的输出!下面的代码使用from语句导入test模块。>>>fromtestimportx,show #导入模块的变量x、show这是模块test.py中的输出!>>>x #输出模块的变量的初始值100>>>show() #调用模块函数这是模块test.py中的show()函数中的输出!>>>x=200 #这里是为当前模块的变量赋值>>>fromtestimportx,show #重新导入>>>x #x的值为模块的变量的初始值100在执行from语句时,test模块的所有语句均被执行。from语句将test模块的变量x和show赋值给当前模块的变量x和show。语句“x=200”为当前模块的变量x赋值,不会影响test模块的变量x。在重新导入时,当前模块变量x被重新赋值为test模块的变量x的值。6.3.3用import还是from在使用import语句导入模块时,模块的变量使用“模块名.”作为限定符,所以不存在歧义,即使导入模块的变量与其他模块的变量同名也没有关系。在使用from语句导入模块时,就需要注意多个模块中是否存在同名变量的情况。1.使用模块内的可修改对象使用from导入模块时,可以直接使用变量引用模块中的对象,从而避免输入“模块名.”作为限定词。这种便利有时也会遇到麻烦。在下面的模块test3.py中,变量x引用了整数对象100(100是不可修改对象),y引用了一个可修改的列表对象。x=100 #赋值,创建整数对象100和变量x,变量x引用整数对象100y=[10,20] #赋值,创建列表对象[10,20]和变量y,变量y引用列表对象下面的代码使用from导入模块test3。>>>x=10 #创建当前模块的变量x>>>y=[1,2] #创建当前模块的变量y>>>fromtest3import* #引用模块中的x和y>>>x,y #输出结果显示确实引用了模块中的对象(100,[10,20])>>>x=200 #赋值,使当前模块的变量x引用整数对象200>>>y[0]=['abc'] #修改第一个列表元素,此时会修改模块中的列表对象>>>importtest3 #再次导入模块>>>test3.x,test3.y #输出结果显示模块中的列表对象已被修改(100,[['abc'],20])2.使用from导入两个模块中的同名变量在下面的两个模块test4.py和test5.py中包含了同名的变量。#test4.pydefshow():print('outintest4.py’)#test5.pydefshow():print('outintest5.py')当两个模块存在同名变量时,使用from语句导入模块会导致变量名冲突,示例代码如下。>>>fromtest4importshow>>>fromtest5importshow>>>show()outintest5.py>>>fromtest5importshow>>>fromtest4importshow>>>show()outintest4.py当两个模块存在同名变量时,应使用import语句导入模块,示例代码如下。>>>importtest4>>>importtest5>>>test4.show()outintest4.py>>>test5.show()outintest5.py6.3.4重新载入模块再次使用import或from语句导入模块时,不会重新执行模块代码,所以不会改变模块中变量的值。Python在importlib模块中提供的reload()函数,它可重新载入模块(即执行模块代码),从而改模块中变量的值。reload()函数用模块名称作为参数,所以只能重新载入使用import语句导入的模块。如果要重新载入的模块还没有导入,执行reload()函数会出错>>>importtest #导入模块,模块代码被执行这是模块test.py中的输出!>>>test.x100>>>test.x=200>>>importtest #再次导入>>>test.x #再次导入没有改变当前值200>>>fromimpimportreload #导入reload函数>>>reload(test) #重载模块,可以看到模块代码被再次执行这是模块test.py中的输出!<module'test'from'D:\\Python35\\test.py'>>>>test.x #因为模块代码再次执行,x恢复为初始值1006.3.5模块搜索路径在导入模块时,Python会执行下列3个步骤。(1)搜索模块文件:在导入模块时,Python按特定的路径搜索模块文件。(2)必要时编译模块:找到模块文件后,Python会检查文件的时间戳。如果字节码文件比源代码文件旧(即源代码文件作了修改),Python就会执行编译操作,生成最新的字节码文件。如果字节码文件是最新的,则跳过编译环节。如果在搜索路径中只发现了字节码,而没有发现源代码文件,则直接加载字节码文件。如果只有源代码文件,Python会执行编译操作,生成字节码文件。(3)执行模块:执行模块的字节码文件。在导入模块时,不能在import或from语句中指定模块文件的路径,只能依赖于Python搜索路径。可使用标准模块sys的path属性来查看当前搜索路径设置,示例代码如下。>>>importsys>>>sys.path['','D:\\Python35\\python35.zip','D:\\Python35\\DLLs','D:\\Python35\\lib','D:\\Python35','D:\\Python35\\lib\\site-packages']第一个空字符串表示Python当前工作目录。Python按照先后顺序依次搜索path列表中的路径。如果在path列表的所有路径中均未找到模块,则导入操作失败。通常,sys.path由4部分设置组成。(1)Python的当前工作目录(可用os模块中的getcwd()函数查看当前目录名称)。(2)操作系统的环境变量PYTHONPATH中包含的目录(如果存在)。(3)Python标准库目录。(4)任何pth文件包含的目录(如果有存在)。Python按照上面的顺序搜索各个目录。pth文件通常放在Python安装目录中,文件名可以任意,例如searchpath.pth。在pth文件中,每个目录占一行,可包含多个目录,示例代码如下。C:\myapp\helloD:\pytemp\src在Windows10系统中配置环境变量PYTHONPATH。演示:sys.path列表在程序启动时,自动进行初始化。可在代码中对sys.path列表执行添加或删除操作>>>fromsysimportpath #导入path变量>>>path #显示当前搜索路径列表……>>>delpath[1] #删除第二个搜索路径>>>path……>>>path.append(r'D:\temp') #添加一条搜索路径>>>path……6.3.6嵌套导入模块Python允许任

温馨提示

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

评论

0/150

提交评论