#匿名函数
#语法规则:
# lambda 参数1、参数2、参数3:表达式
# 特点
# 1.使用lambda关键字创建函数
# 2.没有名字的函数
# 3.匿名函数冒号后面的表达式有且只有一个,注意:是表达式而不是语句
# 4.匿名函数自带return,而这个return的结果就是表达式计算后的结果
# 缺点:lambda 只能是单个表达式,不是一个代码块,lambda 的设计就是为了满足简单函数的场景,仅能封装有限的逻辑,复杂逻辑实现不了,必须使用def来处理
def computer(x,y):
'''
计算数据和
:param x:
:param y:
:return:
'''
return x+y
pass
# print(computer(12,12))
# 对应的匿名函数
m=lambda x,y:x+y #通过变量去调用匿名函数
print(m(2,4)) #调用函数
c=lambda a,b,c:a*b*c
print(c(1,2,3))
age=18
print('可以参军' if age>17 else '继续打工') #可以替代传统双分支的写法
A=lambda x,y:x if x>y else y
print(A(12,2))
A=(lambda x,y:x if x>y else y)(12,16) #直接的调用
print(A)
X=lambda x:x**2
print(X(2))
# 求阶乘
# 循环的方式去实现
def jiecheng(n):
result=1
for i in range(1,n+1):
result*=i
pass
return result
print('10的阶乘{}'.format(jiecheng(10)))
# 递归方式去实现
# 递归满足的条件
# 自己调用自己、必须有一个明确的结束条件
# 优点:逻辑简单、定义简单
# 缺点:容易导致内存空间溢出,内存资源紧张,甚至内存泄露
def digui(n):
'''
递归实现阶乘参数
:param n:
:return:
'''
if n==1:
return 1
else:
return n*digui(n-1)
pass
#递归调用
print('5的阶乘是{}'.format(digui(5)))
# 案列、模拟实现树形结构的遍历
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)
pass
pass
else:
return
pass
#调用搜索文件对象
findFile('C:\\Users\\TE\Desktop\\20210609打印')
网友评论