python中的函数递归和迭代原理解析

(编辑:jimmy 日期: 2024/9/25 浏览:2)

这篇文章主要介绍了python中的函数递归和迭代原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、递归

1、递归的介绍

什么是递归"htmlcode">

import sys
sys.getrecursionlimit()
sys.setrecursionlimit(2000) # 修改递归深度为2000

2、递归的应用

递归分为两个阶段:回溯和递推  
递推 : 把复杂的问题的求解推到比原问题简单一些的问题的求解;

回溯 : 当获得最简单的情况(递归出口)后,逐步返回,依次得到复杂的解

下面通过一个例子来分析这个过程 :

这是一个十进制转化为二进制的函数,十进制转化为二进制就是 将十进制不断地除以2,直到商为0,然后将余数从后到前排列起来

def Decbin(x):
  result = ''
  if x:
    return Decbin(x // 2) + str(x % 2)
  else:
    return result
print(Decbin(7))

当我们传入x为7时,很明显x不为0,所以我们便进入了下次一循环,注意这时的第一层函数并没有结束,而是一直在等待着下一层函数的返回结果。接着进入了第二层函数,参数为3,很明显也不为0,接着又进入了第三层函数,此时第二层函数也在等待下一层函数的返回结果,以此类推,这就是递归函数的回溯。当我们的参数为0的时候,便会执行else的代码,这时候函数就不再回溯,而是开始往前递推。

python中的函数递归和迭代原理解析

二、迭代与递归

1、什么是迭代?

Python中的迭代是指通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代。常见的for循环遍历对象就是迭代。

2、用python实现递归算法,代码结构较为简单,但效率非常低下,而迭代算法可读性强,执行效率也非常之快。所以在运用递归算法时应谨慎。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。