Python24之递归和迭代 – Python量化投资

Python24之递归和迭代

一、递归的含义及一些用途 递归就是函数通过 return语句 实现 自己调用自己 的过程,基本上所有的程序语言都有递归算法,常有人说(’ 一般程序员使用迭代,天才程序员使用递归‘ ),汉诺塔游戏、谢尔宾斯基三角形、斐波那契数列 二、递归的深度和设定递归深度的函数 Python3中针对递归提供了程序保护机制,默认允许的递归深度是100层,此时我们常常会使用超过100层的递归深度,这时我们就可以使用Python3的默认程序修改递归层数,该函数在sys模块里面的setrecursionlimit()函数进行设置,参数就是想要的层数, 例:setrecursionlimit(250) 1 def jiecheng(number): 2 if number == 1 : 3 return 1 4 else : 5 return number*jiecheng(number- 1 ) 6 7 n = jiecheng( 5 ) 8 n 9 120 10 11 n = jiecheng( 80 ) 12 n 13 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000 View Code 三、递归和迭代的对比 相同点: 递归和迭代都是循环的一种 不同点: 递归是重复调用函数自身实现循环 ,会使代码变得精简且高效,但是递归时调用函数需要入栈出栈,对于内存和CPU的消耗比较大,递归是根据终止条件来结束递归 迭代是函数内某段代码实现循环 ,而迭代是通过计数器来结束循环,当循环次数较大时,迭代的效率明显高于递归https://www.cnblogs.com/ksht-wdyx/p/11342106.html

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论