Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 递归函数

python 递归函数

浏览: 作者:Datehoer 发布日期:2020-12-25 22:35:10 来源: 原创
其实说白了,就是写递归写上瘾了,昨天写了JavaScript的递归函数,今天写一下python递归函数。
如果看过昨天的文章的话,今天的就很容易理解了,递归函数,其实虽然名字看着高大上,但实际上就是自己调用自己而已。

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。在函数内部调用其他函数不是函数的嵌套,而在函数内部定义子函数才是函数的嵌套。

简单的看一下在python中递归函数的特性吧:

    1、递归函数必须有一个明确的结束条件。

  2、每进入更深一层的递归时,问题规模相对于上一次递归都应减少

  3、相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。

  4、递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

def f(n):
    if n==1:
        return 1
    else:
        return (f(n-1)+1)*2
print(f(10))
简单看一个小例子,我们计算f(n) = (f(n-1) + 1)*2 这个的值,如果平常写的话,不使用哦个递归,那么就需要一直调用这个函数来进行计算,而我们使用递归的话,就是在函数内部不断调用,然后返回函数结果,
我们来看一下python中递归函数的优缺点。
优点其实很明确了,就是定义简单,篇幅少,本来需要很多行的代码,只需要几行就可以了。而缺点其实也很明显,如果我们设置的最终结束条件不是很好的话,那么会占用很多的资源来进行计算。
很容易导致栈的溢出。
但实际上其实递归函数的思路是非常明确的,递归值的返回时返回到上一层,而其他的层在执行的过程中,均处于等待答案的过程中。


python递归函数
其实简单来说,就是一个自己不断调用自己的过程。
如果有什么疑问,可以在评论区留言,我会在看到的第一时间进行回复的。

版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/100.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!