81:递归函数_函数调用内存分析_栈帧的创建

###递归函数

递归函数指的是:自己调用自己的函数,在函数体内部直接或间接的自己调用自己。递归类似于大家中学数学学习过的“数学归纳法”。 每个递归函数必须包含两个部分:
1. 终止条件
表示递归什么时候结束。一般用于返回值,不再调用自己。
2. 递归步骤
把第 n 步的值和第 n-1 步相关联。

递归函数由于会创建大量的函数对象、过量的消耗内存和运算能力。在处理大量数据时,谨慎使用。

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)


for i in range(1, 6):
    print(i, '!=', factorial(i))

输出结果:

D:\work\python\two\venv\Scripts\python.exe D:\work\python\two\mypy18.py 
1 != 1
2 != 2
3 != 6
4 != 24
5 != 120

posted @ 2022-11-19 14:13  竹蜻蜓vYv  阅读(31)  评论(0编辑  收藏  举报