首页 > 编程语言 > 详细

Python24之递归和迭代

时间:2019-08-12 21:07:40      阅读:90      评论:0      收藏:0      [点我收藏+]

一、递归的含义及一些用途

  递归就是函数通过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的消耗比较大,递归是根据终止条件来结束递归

  迭代是函数内某段代码实现循环,而迭代是通过计数器来结束循环,当循环次数较大时,迭代的效率明显高于递归

 

Python24之递归和迭代

原文:https://www.cnblogs.com/ksht-wdyx/p/11342106.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!