美文网首页
python学习_day10

python学习_day10

作者: 宗肃書 | 来源:发表于2021-06-30 15:18 被阅读0次
  • 匿名函数和递归函数的使用
#匿名函数
#语法规则:
# 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打印')

相关文章

网友评论

      本文标题:python学习_day10

      本文链接:https://www.haomeiwen.com/subject/dgerultx.html