python的递归函数

递归函数:

  1. 什么是递归函数:

    通俗来讲,在函数体内调用该函数本身,这个函数就是递归函数。
    
  2. 递归函数的组成部分:

    递归的调用以及递归的终止条件(终止条件很重要,不然就是无限循环,你的内存会炸)
    
  3. 递归的调用过程:(此处理解需要具备数据结构的知识,栈是先进后出的序列,第一次调用在栈底,每一次调用以此添加入栈中)

    每递归调用一次,都会在栈内存中分配一个栈帧
    每次执行完一次函数,都会释放相应的空间
    
  4. 递归的优缺点:

    优点:思路清晰,代码简单(譬如算个阶乘啥的)
    缺点:占用内存大,效率低下
    
"""
递归函数:
    什么是递归函数:
        通俗来讲,在函数体内调用该函数本身,这个函数就是递归函数。
    递归函数的组成部分:
        递归的调用以及递归的终止条件(终止条件很重要,不然就是无限循环,你的内存会炸)
    递归的调用过程:(此处理解需要具备数据结构的知识,栈是先进后出的序列,第一次调用在栈底,每一次调用以此添加入栈中)
        每递归调用一次,都会在栈内存中分配一个栈帧
        每次执行完一次函数,都会释放相应的空间
    递归的优缺点:
        优点:思路清晰,代码简单(譬如算个阶乘啥的)
        缺点:占用内存大,效率低下

"""


def fac(n):
    if n != 1:
        y = n * fac(n - 1)
        return y
    else:
        return 1


print(fac(6))

上述递归的阶乘函数借用杨淑娟老师的一张图来解释:如果看图没弄明白流程,可以用pycharm的调试功能来看数值的具体传递过程。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值