递归函数

如果一个函数的函数体内调用了函数自身,这个函数称为递归函数。

递归的根本信息

递归函数组成部分:

  • 递归调用
  • 递归终止条件

递归的调用过程:

  • 每递归调用一次函数,都会在栈内存调配一个栈帧
  • 每执行完一次函数,都会开释对应的空间

递归的优缺点:

长处毛病
思路、代码简略占用内存多、效率低

代码示例:

  1. 计算数字的阶乘
def fac(n):    if n == 1:        return 1    else:        return n*fac(n-1)print(fac(6))  # 720
  1. 斐波那契数列
def fin(n):    if n == 1 or n == 2:        return 1    else:        return fin(n-1) + fin(n-2)print(fin(6))  # 8# 遍历输入斐波那契数列for item in range(1, 7):    print(fin(item), end='\t')  # 1    1    2    3    5    8