匿名函数与递归函数

'''
匿名函数:
    官方定义,不推荐所有人使用的一种方式,但是官方支持该语法。
    即懒人版的函数。只有极少数情况下会选择使用该方法。
    匿名函数就是基于lambda关键字来实现的
'''

# 匿名函数示例
# a = lambda b:b+100  #定义了一个匿名函数,要求传入一个参数b,执行了b+100的操作,将结果返回给a变量
# print(a(500))
#
# # 完整版
# def a(b):
#     return b+100
#
# print(a(500))


'''
递归函数:
    函数调用自己
    递归函数本质上就是循环,所以要设置跳出条件,避免死循环
'''

# 递归死循环
# def a():
#     print('这是一个递归函数')
#     a()
# a()

# def mul(n):
#     num = n
#     for i in range(1,n):
#         num = num*i
#     return num
#
# print(mul(10))
'''
程序运行流程:
    num = 10
    num = 10*1
    num = 10*2
    num = 20*3
    num = 60*4
    ...
    num = 362880*10
'''

# 递归版本
def mul_plus(n):
    if n ==1:
        return 1
    else:
        num  = n*mul_plus(n-1)
    return num

print(mul_plus(10))

'''
递归版运行流程:
    n = 10
    num = 10*mul_plus(9)
    return 10*mul_plus(9)
        n = 9
        num = 9*mul_plus(8)
        return 9*mul_plus(8)
            n=8
            num = 8*mul_plus(7)
            return 8*mul_plus(7)
                return ...
                    n = 3
                    num = 3*mul_plus(2)
                    return 3*mul_plus(2)
                        n=2
                        num = 2*mul_plus(1)
                        return 2*mul_plus(1)
                            return 1
                        num = 2*1
                    num = 3*2
                num = 4*6
            num = 5*24
        ...
    num = 10*362880

'''

 

posted @ 2024-12-04 20:22  mafei666  阅读(15)  评论(0)    收藏  举报