一、函数的基本类型
1、无参数,无返回值,一般用于提示信息打印;
2、无参数,有返回值,多用于数据采集,比如获取系统信息;
3、有参数,无返回值,多用在某些不需要返回值的参数设置;
4、有参数,有返回值,一般是计算型的
二、变量
1、局部变量与全局变量重复定义时,优先使用局部变量;
2、函数内部修改全局变量时,必须用global关键字声明;
三、引用
1、函数调用时,实参传递的就是对象的引用;
2、函数内部的处理是否会影响到函数外部的数据变化;
五、匿名函数
1、 lambda 参数1,参数2,参数3:表达式;
2、匿名函数表达式只有一个,不是一个代码块,只能满足简单场景简单逻辑;
3、自带return,结果就是表达式计算后的结果;
test = lambda x,y:x+y print(test(1,3)) 4
4、选择逻辑
test = lambda x,y:x if x>y else y print(test(1,3)) rs = (lambda x,y:x if x>y else y)(16,12) print(rs) 3 16
5、等效双分支
age = 18 print(‘可以参军‘ if age>18 else ‘继续上学‘) 继续上学
六、递归函数
1、递归函数:函数内部不调用其他的函数,而是自己本身;
2、必须有一个结束条件,否则无法结束直到到达最大递归深度报错;
def diguiJC(n): if n==1: return 1 #递归边界 else: return n*diguijiecheng(n-1) print(diguiJC(5)) 120
3、优点:逻辑简单、定义简单,可以把复杂任务分解成更简单的子问题,比使用一些嵌套迭代更容易;
4、缺点:容易导致栈溢出,内存资源紧张,甚至内存泄漏;
#递归案例,模拟实现树形结构的遍历 import os #引入文件操作模块 def findFile(file_Path): listRs = os.listdir(file_Path) #得到该路径下所有文件夹 for fileitem in listRs: full_path = os.path.join(file_Path,fileitem) #获取完整的文件路径 if os.path.isdir(full_path): #判断是否是文件夹 findFile(full_path) else: print(fileitem) else: return findFile(r‘D:\BaiduNetdiskDownload\Z-终J笔记‘) ZJBJ.2020.EP01.1080p.WEB-DL.H264.AAC-公众号:闲影放映室.rar ZJBJ.2020.EP02.1080p.WEB-DL.H264.AAC-公众号:闲影放映室.rar ZJBJ.2020.EP03.1080p.WEB-DL.H264.AAC-公众号:闲影放映室.rar ZJBJ.2020.EP04.1080p.WEB-DL.H264.AAC-公众号:闲影放映室.rar
原文:https://www.cnblogs.com/5947l/p/14270677.html