Python之递归

2019-04-25 06:53:22来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

在函数内部,可以调用其他函数,如果一个函数在内部调用自身,这个函数就是递归函数。

    def test(n):
        print(n)
        if int(n/2) == 0:
            return n
        return test(int(n/2)

  test(5)

 

递归特性:

1.必须有一个明确的结束条件

if int(n/2) == 0:
        return n
#当int(n/2)的值等于0时,return 0 ==> 返回值为0,结束递归

2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少

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

 


原文链接:https://www.cnblogs.com/lzn-2018/p/10751590.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python简介

下一篇:len(x) 击败 x.len(),从内置函数看 Python 的设计思想