项目四 函数与模块(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-02
| 62页
| 52人阅读
| 7人下载
普通

内容正文:

项目四 函数与模块 Contents 函数的定义与调用 函数的参数列表与返回值 模块的使用方法 函数的定义与调用 PART 01 函数就是由部分语句集合而成的一个通用的程序功能部件,是Python语言中最基本的组成工具。 我们可以在程序中多次调用函数,令其在程序中执行多次。 在函数定义过程中,可以设定函数的返回值,并且也可以每次改变作为函数输入的参数来得到不同的结果。 以函数的形式去“包裹”一个具体的操作,使这个操作变成一个可以广泛应用的工具,这样在不同情形下我们都可以轻松调用函数完成目标操作。 前言 4 Python语言中使用函数分为两个步骤:定义函数和调用函数。 定义函数,即根据函数的输入、输出和数据处理完成函数代码的编写。定义函数只是规定了函数会执行什么操作,但并不会真正去执行。 调用函数,即真正去执行函数中的代码,是指根据传入的数据完成特定的运算,并将运算结果返回到函数调用位置的过程。 函数的定义与调用 5 函数的定义与调用 【任务描述】 了解函数的定义与调用 【关键步骤】 了解函数的定义与调用 示例01 1 def CalCircleArea(): #定义名字为CalCircleArea的函数 2 s=3.14*3*3 #计算半径为3的圆的面积 3 print('半径为3的圆的面积为:%.2f'%s) #将计算结果输出 4 CalCircleArea() #调用函数CalCircleArea 示例 程序执行完毕后,将在屏幕上输出28.26。 函数的定义与调用 示例01 代码缩进 4个空格 正文缩进1.27厘米 7 流程图 程序运行后,会直接执行第4行代码CalCircleArea(),然后通过该函数调用转去执行第1-3行的代码。 CalCircleArea函数执行结束后,会回到函数调用位置继续执行,因为后面没有其他代码,所以程序结束。 函数的定义与调用 8 参数列表与返回值 PART 02 参数列表与返回值实际上就是实现一个函数的输入和输出功能。 通过函数的参数列表,可以为函数传入待处理的数据,从而使得一个函数更加通用。 通过返回值,可以将函数的计算结果返回到函数调用的位置,从而可以利用函数调用返回的结果再去做其他运算。 参数列表与返回值 10 计算零件面积 对于计算圆面积的函数CalCircleArea,可以将半径r作为参数,这样每次调用CalCircleArea函数时只要传入不同的半径值,函数就可以自动计算出传入半径所对应的圆的面积。 我们要计算零件的面积,则需要先计算半径分别为r1和r2的圆的面积C1和C2,以及边长分别为d11和d12、d21和d22的两个长方形的面积S1和S2,然后通过计算C1-C2-S1-S2或C1-(C2+S1+S2)得到零件面积。 参数列表与返回值 11 参数列表与返回值 【任务描述】 了解参数列表与返回值 了解形参与实参的作用 【关键步骤】 了解参数列表与返回值 了解形参与实参的作用 示例02 1 def CalCircleArea(r): #定义名字为CalCircleArea的函数 2 s=3.14*r*r #计算半径为r的圆的面积 3 print('半径为%.2f的圆的面积为:%.2f'%(r,s)) #将计算结果输出 4 def CalRectArea(a,b): #定义名字为CalRectArea的函数 5 s=a*b #计算边长分别为a和b的长方形的面积 6 print('边长为%.2f和%.2f的长方形的面积为:%.2f'%(a,b,s)) #将计算结果输出 形参是定义函数时函数名后面的一对小括号中给出的参数列表。形参的作用是接收函数调用时传入的参数值。 参数列表与返回值 示例02 代码缩进 4个空格 正文缩进1.27厘米 13 1 a=eval(input('请输入圆的半径:')) 2 CalCircleArea(a) 3 x=eval(input('请输入长方形的一条边长:')) 4 y=eval(input('请输入长方形的另一条边长:')) 5 CalRectArea(x,y) 实参是在调用函数时函数名后面的小括号中给出的参数列表。当调用函数时,会将实参的值传递给对应的形参。 执行程序后,如果输入圆的半径为3,输入长方形的两条边长分别为3.5和2,则在屏幕上会输出如下结果: 请输入圆的半径:3 半径为10.00的圆的面积为:28.26 请输入长方形的一条边长:3.5 请输入长方形的另一条边长:2 边长为3.50和2.00的长方形的面积为:7.00 参数列表与返回值 示例02 代码缩进 4个空格 正文缩进1.27厘米 14 当实参传递给形参后,如果在函数体中对形参值做修改,则该修改并不会影响实参,即实参值不会改变。 但如果实参是列表等对象时,可在函数体中通过形参修改实参列表中对应元素的值。 同时定义多个变量 代码缩进 4个空格 正文缩进1.27厘米 15 定义多个变量 【任务描述】 了解多个变量的定义和使用方法 【关键步骤】 了解多个变量的定义和使用方法 示例03 1 def ModifyVal(x,y): #ModifyVal函数定义 2 x=y #将y的值赋给形参x 3 def ModifyListElement(ls,idx,val): #ModifyListElement函数定义 4 ls[idx]=val #将ls中下标为idx的元素值赋为val 5 a,b=5,10 #a和b的值分别赋为5和10 6 print(a,b) #输出5和10 7 ModifyVal(a,10) #调用ModifyVal函数试图将a赋为10,但实际不会修改a的值 8 print(a,b) #仍输出5和10 9 c=[1,2,3] #c的值赋为[1,2,3] 10 print(c) #输出[1,2,3] 11 ModifyVal(c,[4,5,6]) #调用ModifyVal函数试图将c赋为[4,5,6],但实际不会修改 12 print(c) #仍输出[1,2,3] 13 ModifyListElement(c,1,5) #调用ModifyListElement函数将下标为1的元素赋为5 14 print(c) #输出[1,5,3] 定义多个变量 示例03 代码缩进 4个空格 正文缩进1.27厘米 17 程序执行结束后,会在屏幕上输出如下结果: 5 10 5 10 [1, 2, 3] [1, 2, 3] [1, 5, 3] 示例03 默认参数 【任务描述】 了解自定义函数中的默认参数 【关键步骤】 了解自定义函数中的默认参数 示例04 1 def StudentInfo(name,country='中国'): #参数country的默认参数值为'中国' 2 print('姓名:%s,国家:%s'%(name,country)) 3 StudentInfo('李晓明') #这里没有给country传实参值,但因为有默认参数所以不会出错 4 StudentInfo('大卫','美国') #给country传了实参,则不再使用默认参数 函数的默认参数就是缺省参数,即当调用函数时,如果没有为某些形参传递对应的实参,则这些形参会自动使用默认参数值。 程序执行完毕后,将在屏幕上输入如下结果: 姓名:李晓明,国家:中国 姓名:大卫,国家:美国 默认参数 示例04 代码缩进 4个空格 正文缩进1.27厘米 20 关键字参数 【任务描述】 了解关键字参数的使用方式 【关键步骤】 了解关键字参数的使用方式 示例05 1 def StudentInfo(name, chineselevel='良好', country='中国'): 2 print('姓名:%s,中文水平:%s,国家:%s'%(name,chineselevel,country)) 3 StudentInfo('李晓明') 4 StudentInfo('大卫', country='美国') 5 StudentInfo(country='美国', chineselevel='一般', name='约翰') 关键字参数的形式为“形参=实参” 程序执行完毕后,将在屏幕上输入如下结果: 姓名:李晓明,国家:中国 姓名:大卫,国家:美国 关键字参数 示例05 代码缩进 4个空格 正文缩进1.27厘米 22 def 函数名([普通形参列表,] *不定长参数名 [,普通形参列表]): 函数体 或 def 函数名([普通形参列表,] **不定长参数名): 函数体 不定长参数,即在调用函数时可以接收任意数量的实参,这些实参在传递给函数时会被封装成元组(位置参数)或字典(关键字参数)形式。 第一种定义方法使用“*不定长参数名”的方式,表示这个不定长参数对应的是一组位置参数; 而第二种定义方法使用“**不定长参数名”的方式,表示这个不定长参数对应的是一组关键字参数。 不定长参数 代码缩进 4个空格 正文缩进1.27厘米 23 不定长参数 【任务描述】 了解不定长参数的使用方法 【关键步骤】 了解不定长参数的使用方法 示例05 1 def StudentInfo1(name, *args): #定义函数StudentInfo1 2 print('姓名:', name, ',其他:', args) 3 def StudentInfo2(name, **args): #定义函数StudentInfo2 4 print('姓名:', name, ',其他:', args) 5 def StudentInfo3(name, *args, country='中国'): #定义函数StudentInfo3 6 print('姓名:', name, ',国家:', country, ',其他:', args) 7 StudentInfo1('李晓明', '良好', '中国') 8 StudentInfo2('李晓明', 中文水平='良好', 国家='中国') 9 StudentInfo3('李晓明', 19, '良好') 10 StudentInfo3('大卫', 19, '良好', country='美国') 不定长参数 示例05 代码缩进 4个空格 正文缩进1.27厘米 25 程序执行完毕后,将会输出如下结果: 姓名: 李晓明 ,其他: ('良好', '中国') 姓名: 李晓明 ,其他: {'中文水平': '良好', '国家': '中国'} 姓名: 李晓明 ,国家: 中国 ,其他: (19, '良好') 姓名: 大卫 ,国家: 美国 ,其他: (19, '良好') 示例05 拆分参数列表 【任务描述】 了解列表、元组或字典形式参数的拆分 【关键步骤】 了解列表、元组或字典形式参数的拆分 示例07 1 def SumVal(*args): #定义函数SumVal 2 sum=0 3 for i in args: 4 sum+=i 5 print('求和结果为:',sum) 6 ls=[3,5.2,7,1] 7 SumVal(ls[0],ls[1],ls[2],ls[3]) 如果一个函数所需要的参数已经存储在了列表、元组或字典中,则可以直接从列表、元组或字典中拆分出来函数所需要的这些参数,其中列表、元组拆分出来的结果作为位置参数,而字典拆分出来的结果作为关键字参数。 程序运行结束后,将在屏幕上输出如下结果: 求和结果为: 16.2 实际上,第7行代码可以简写为SumVal(*ls)。 拆分参数列表 示例07 代码缩进 4个空格 正文缩进1.27厘米 28 1 def StudentInfo(name, chineselevel, country): #定义函数StudentInfo 2 print('姓名:%s,中文水平:%s,国家:%s'%(name,chineselevel,country)) 3 d={'country': '中国', 'chineselevel':'良好', 'name':'李晓明'} 4 StudentInfo(**d) 将字典的拆分结果作为函数的关键字参数。 程序运行结束后,将在屏幕上输出如下结果: 姓名:李晓明,中文水平:良好,国家:中国 拆分参数列表 示例07 代码缩进 4个空格 正文缩进1.27厘米 29 函数返回值 【任务描述】 使用return获取函数返回值 【关键步骤】 使用return获取函数返回值 示例03 1 def CalCircleArea(r): #定义函数CalCircleArea 2 return 3.14*r*r #通过return语句将计算得到的圆面积返回 3 def CalRectArea(a,b): #定义函数CalRectArea 4 return a*b #通过return语句将计算得到的长方形面积返回 5 r1,r2,d11,d12,d21,d22=10,1,4,5,6,5 6 C1=CalCircleArea(r1) #计算大圆的面积 7 C2=CalCircleArea(r2) #计算小圆的面积 8 S1=CalRectArea(d11,d12) #计算第一个长方形面积 9 S2=CalRectArea(d21,d22) #计算第二个长方形面积 10 A=C1-C2-S1-S2 #大圆面积依次减去小圆和两个长方形面积,即得到零件面积 11 print('零件面积为:%.2f'%A) #将零件面积输出 return语句将函数中的运算结果返回到函数调用的位置。 程序运行结束后,将在屏幕上输出如下结果: 零件面积为:260.86 函数返回值 示例08 代码缩进 4个空格 正文缩进1.27厘米 31 1 def GetList(): #定义函数GetList 2 return [1,2,3] #将包含3个元素的列表返回 3 def GetTuple(): #定义函数GetTuple 4 return (1,2,3) #将包含3个元素的元组返回 5 def GetElements(): #定义函数GetElements 6 return 1,2,3 #返回3个数值数据,实际上会将这3个数据封装成一个元组返回 7 print(type(GetList())) 8 print(GetList()) 9 print(type(GetTuple())) 10 print(GetTuple()) 11 print(type(GetElements())) 12 print(GetElements()) 通过return不仅能够返回数值数据,也可以返回字符串、列表、元组等数据。 函数返回值 示例08 代码缩进 4个空格 正文缩进1.27厘米 32 程序运行结束后,将在屏幕上输出如下结果: <class 'list'> [1, 2, 3] <class 'tuple'> (1, 2, 3) <class 'tuple'> (1, 2, 3) 示例08 模块 PART 03 按照代码功能的不同,将代码分门别类地放在不同的脚本文件中,这些脚本文件就称为是模块(Module)。 当要使用一个模块中的某些功能时,我们可以通过import方式将该模块导入。 模块 35 import model1 import model2 … import modelN 或 import model1, model2, ..., modelN 使用import语句导入模块语法如下: Import 代码缩进 4个空格 正文缩进1.27厘米 36 加载模块 【任务描述】 了解import和from import的使用方法 了解包的含义和加载 【关键步骤】 了解import和from import的使用方法 了解包的含义和加载 示例09 1 def PrintFib(n): #定义函数PrintFib,输出斐波那契数列的前n项 2 a, b = 1, 1 #将a和b都赋为1 3 for i in range(1,n+1): #i的取值依次为1,2,…,n 4 print(a, end=' ') #输出斐波那契数列的第i项 5 a, b = b, a+b #更新斐波那契数列第i+1项的值,并计算第i+2项的值 6 print() #输出一个换行 7 def GetFib(n): #定义函数GetFib,返回斐波那契数列的前n项 8 fib=[] #定义一个空列表fib 9 a, b = 1, 1 #将a和b都赋为1 10 for i in range(1,n+1): #i的取值依次为1,2,…,n 11 fib.append(a) #将斐波那契数列的第i项存入列表fib中 12 a, b = b, a+b #更新斐波那契数列第i+1项的值,并计算第i+2项的值 13 return fib #将列表fib返回 14 PrintFib(10) #调用PrintFib输出斐波那契数列前10项 15 ls=GetFib(10) #调用GetFib函数获取斐波那契数列前10项组成的列表 16 print(ls) #输出列表ls中的元素 定义一个名字为fibo.py的脚本文件,其中包括PrintFib和GetFib两个函数的定义。 加载模块 示例09 代码缩进 4个空格 正文缩进1.27厘米 38 程序执行完毕后,将在屏幕上输出如下结果: 1 1 2 3 5 8 13 21 34 55 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 示例09 1 import fibo #导入fibo模块 2 fibo.PrintFib(5) #调用fibo模块中的PrintFib函数,输出斐波那契数列前5项 3 ls=fibo.GetFib(5) #调用fibo模块中的GetFib函数,得到斐波那契数列前5项的列表 4 print(ls) #输出ls中保存的斐波那契数列前5项 再定义一个名字为testfibo.py的脚本文件。 程序执行完毕后,将在屏幕上输出如下结果: 1 1 2 3 5 8 13 21 34 55 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 1 1 2 3 5 [1, 1, 2, 3, 5] 加载模块 示例09 代码缩进 4个空格 正文缩进1.27厘米 40 导入模块后,如果要使用该模块中定义的标识符,则需要通过“模块名.标识符名”的方式。 从程序输出结果可以看到,虽然我们只在testfibo.py中输出了斐波那契数列的前5项,但当我们import fibo时,fibo.py中第14至16行代码也执行了,所以会同时输出斐波那契数列的前10项数据。 示例09 希望一个脚本文件,单独运行时就执行这些语句;而作为模块导入时,就不执行这些语句。 要实现这个功能,需要用到每个模块中都有的一个全部变量__name__。 __name__的作用是获取当前模块的名称,如果当前模块是单独执行的,则其__name__的值就是__main__; 否则,如果是作为模块导入,则其__name__的值就是模块的名字。 加载模块 示例09 42 module.py 1 print(__name__) #输出全局变量__name__的值 testmodule.py 1 import module #导入module模块 当我们执行module.py时,会在屏幕上输出:__main__; 而当我们执行testmodule.py时,则会在屏幕上输出:module。 即module.py单独运行和作为模块导入时其__name__的值是不同的。 加载模块 示例09 43 修改后的fibo.py 1 def PrintFib(n): #定义函数PrintFib,输出斐波那契数列的前n项 2 a, b = 1, 1 #将a和b都赋为1 3 for i in range(1,n+1): #i的取值依次为1,2,…,n 4 print(a, end=' ') #输出斐波那契数列的第i项 5 a, b = b, a+b #更新斐波那契数列第i+1项的值,并计算第i+2项的值 6 print() #输出一个换行 7 def GetFib(n): #定义函数GetFib,返回斐波那契数列的前n项 8 fib=[] #定义一个空列表fib 9 a, b = 1, 1 #将a和b都赋为1 10 for i in range(1,n+1): #i的取值依次为1,2,…,n 11 fib.append(a) #将斐波那契数列的第i项存入列表fib中 12 a, b = b, a+b #更新斐波那契数列第i+1项的值,并计算第i+2项的值 13 return fib #将列表fib返回 14 if __name__=='__main__': #只有单独执行fibo.py时该条件才成立 15 PrintFib(10) #调用PrintFib输出斐波那契数列前10项 16 ls=GetFib(10) #调用GetFib函数获取斐波那契数列前10项组成的列表 17 print(ls) #输出列表ls中的元素 加载模块 示例09 44 此时,当执行fibo.py时,将在屏幕上输出如下结果: 1 1 2 3 5 8 13 21 34 55 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 当执行testfibo.py时,将在屏幕上输出如下结果: 1 1 2 3 5 [1, 1, 2, 3, 5] 加载模块 示例09 45 除了可以导入自己编写的模块外,也可以直接导入系统提供的模块,使用其中的功能。例如,我们可以通过sys模块获取运行Python脚本时传入的参数,如下面的代码所示。 1 import fibo #导入fibo模块 2 import sys #导入系统提供的sys模块 3 n=int(sys.argv[1]) #通过sys模块的argv获取执行脚本时传入的参数 4 fibo.PrintFib(n) #调用fibo模块中的PrintFib函数,输出斐波那契数列前n项 5 ls=fibo.GetFib(n) #调用fibo模块中的GetFib函数,得到斐波那契数列前n项的列表 6 print(ls) #输出ls中保存的斐波那契数列前n项 加载模块 示例09 46 在系统控制台下,如果执行“python testfibo.py 5”,则会输出如下结果: 1 1 2 3 5 [1, 1, 2, 3, 5] 如果执行“python testfibo.py 10”,则会输出如下结果: 1 1 2 3 5 8 13 21 34 55 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 示例09 可以使用from import将模块中的标识符(变量名、函数名等)直接导入当前环境,这样我们在访问这些标识符时就不再需要指定模块名。 from 模块名 import 标识符1, 标识符2, ..., 标识符N 加载模块 示例09 48 1 from fibo import PrintFib, GetFib #导入fibo模块中的PrintFib和GetFib 2 PrintFib(5) #忽略fibo模块名直接调用PrintFib函数 3 ls=GetFib(5) #忽略fibo模块名直接调用GetFib函数 4 print(ls) #输出ls中保存的斐波那契数列前5项数据 程序执行结束后,将在屏幕上输出如下结果: 1 1 2 3 5 [1, 1, 2, 3, 5] 加载模块 示例09 49 1 from fibo import PrintFib #只导入fibo模块中的PrintFib 2 PrintFib(5) #忽略fibo模块名直接调用PrintFib函数 程序执行结束后,将在屏幕上输出如下结果: 1 1 2 3 5 也可以改为只导入一个模块中的部分标识符,如下面的代码所示: 加载模块 示例09 50 1 import fibo as f #导入fibo模块,并为fibo起了个别名f 2 f.PrintFib(5) #调用fibo模块中的PrintFib函数,输出斐波那契数列前5项 无论是利用import导入模块、还是用from import导入模块中的标识符,在导入的同时都可以使用as为模块或标识符起别名。 1 from fibo import PrintFib as pf #导入fibo模块中的PrintFib,并重命名为pf 2 pf(5) #调用fibo模块中的PrintFib函数,输出斐波那契数列前5项 加载模块 示例09 51 Python中的包(Package)的作用与操作系统中文件夹的作用相似,利用包可以将多个关系密切的模块组成在一起,一方面方便进行各脚本文件的管理,另一方面可以有效避免模块命名冲突问题。 定义一个包,就是创建一个文件夹并在该文件夹下创建一个__init__.py文件,文件夹的名字就是包名。 另外,可以根据需要在该文件夹下再创建子文件夹,子文件夹中创建一个__init__.py文件,则又形成了一个子包。 模块可以放在任何一个包或子包中,在导入模块时需要指定所在的包和子包的名字。例如,如果要导入包A中的模块B,则需要使用“import A.B”。 包 52 sound/ 顶级包 __init__.py 初始化这个声音包 formats/ 文件格式转换子包 __init__.py wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py auwrite.py ... effects/ 音效子包 __init__.py echo.py surround.py reverse.py ... filters/ 过滤器子包 __init__.py equalizer.py vocoder.py karaoke.py ... 下面通过Python官方文档中的一个例子理解包的结构和使用方法。下面是关于声音数据处理的包结构: 包 53 如果要使用sound包的effects子包的echo模块,则可以通过下面方式导入: import sound.effects.echo 假设在echo模块中有一个echofilter函数,则调用该函数时必须指定完整的名字(包括各层的包名和模块名),即: from sound.effects import echo 也可以使用from import方式导入包中的模块,如: sound.effects.echo.echofilter(实参列表) echo.echofilter(实参列表) 通过这种方式,也可以正确导入sound包的effects子包的echo模块,而且在调用echo模块中的函数时不需要加包名: 包 54 使用from import也可以直接导入模块中的标识符,如: from sound.effects.echo import echofilter 这里直接导入了echo模块中的echofilter函数,此时调用echofilter函数可直接写作: echofilter(实参列表) 包 55 猴子补丁是指在运行时动态替换已有的代码,而不需要修改原始代码。 1 def Sum(a,b): #定义函数Sum 2 print('Sum函数被调用!') #通过输出信息以知道哪个函数被调用 3 return a+b #将a和b的求和结果返回 4 def NewSum(*args): #定义函数NewSum 5 print('NewSum函数被调用!') #通过输出信息以知道哪个函数被调用 6 s=0 #s用于保存求和结果,初始赋为0 7 for i in args: #i取传入的每一个参数值 8 s+=i #将i加到s上 9 return s #将保存求和结果的s返回 10 Sum=NewSum #将NewSum赋给Sum,后面再调用Sum函数,实际上就是执行NewSum函数 11 print(Sum(1,2,3,4,5)) #调用Sum函数(实际是执行NewSum)计算1至5的和并输出 程序执行完毕后,将在屏幕上输出如下结果: NewSum函数被调用! 15 猴子补丁 56 Python是一个流行的开源项目,许多第三方开发者也将其开发的功能开放、供其他开发者在开源协议下免费使用。 第三方模块的获取与安装有多种方法,其中最推荐的一种方法是使用pip工具。 这里我们以用于科学计算的numpy模块的安装为例,介绍pip的使用方法。在安装numpy之前,可以先在Python环境中输入“import numpy”,此时会得到如下错误信息: ModuleNotFoundError: No module named 'numpy' 第三方模块的获取与安装 57 下面我们打开系统控制台,并输入如下命令: pip install numpy 在联网情况下,系统就会自动下载安装包并完成安装。 成功安装numpy模块后,再在Python环境中执行“import numpy”,则不会报错、可以正常导入。 第三方模块的获取与安装 Python函数编程 任务背景: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module),模块大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。 任务01 读取路径下全部文件及文件夹名称 任务需求: 借助Pycharm,建立Python3项目,读取路径下全部文件及文件夹名称,包含子文件及子文件夹。 任务分析: 建立Python项目 读取路径下全部文件及文件夹名称,包含子文件及子文件夹 任务01 任务步骤: 借用Pycharm工具,建立Python3项目,读取路径下全部文件及文件夹名称,包含子文件及子文件夹。 任务结果: 读取路径下全部文件及文件夹名称 任务01 感谢观看 $$

资源预览图

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