2.函数递归


  1. 函数递归
def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

res = factorial(7)
print(res)


                        5 * factorial(4)
                            4 * factorial(3)
                                3 * factorial(2)
                                    2 * factorial(1)
                                        factorial(1) ==>1等于1时候调用完成,开始返回
                                    2*1 ==>2
                                3*2 ==>6
                            4*6 ==>24
                        5*24 ==>120
     

从内层返回

  1. for循环实现递归
def func(num):
    result = 1
    for i in range(num):
        result *= i + 1  #
    return result

res = func(5)
print(res)

3.匿名函数实现阶乘递归

f = lambda i: 1 if i<= 1 else f(i-1) * i
print(f)