这一章节我们来讨论两个话题:递归函数vs循环和递归处理任意结构
1.递归函数vs循环
再次沿用上一章节的递归代码:
>>> def test (aList):
if not aList:
return 0
else :
return aList[0]+test(aList[1:])
>>> a=[1,2,3,4,5]
>>> test(a)
15
同时,我们也用循环实现上面的功能:
>>> def test2(aList):
sumNum=0
while aList:
sumNum+=aList[0]
aList=aList[1:]
return sumNum
>>> a=[1,2,3,4,5]
>>> test2(a)
15
>>>
功能上两份代码都是一致的,但是从可读性上,无疑使用循环更加能够理解,而且迭代的速度在python里面是非常快的,也许性能比递归更加快
2.递归处理任意结构
我们找出一些极端例子:
>>> def sumTree(aList):
tot=0
for item in aList:
if not isinstance(item,list):
tot+=item
else:
tot+=sumTree(item)
return tot
>>> a=[[1,[2,[3,[4,[5,6],7],8],9]]]
>>> sumTree(a)
45
>>>
上面是一个比较极端的例子,在时间运用python的过程中一般不会出现
3.递归的应用场景:
1)树的遍历
2)导入链的遍历
对于上面的两种情况,递归还是非常好使的
总结:这一章节主要结束了递归函数vs循环、递归处理任意结构和递归的应用场景
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---...
【大纲】 0-1-课程内容和安排介绍 1-1-计算机的概念 ...第6章-函数与递归-2-函数的调用和返回值 第6章-函数与递归-3-改变参数值的函数 第6章-函数与递归-4-程序结构和递归 第6章-函数与递归-5-函数实例
理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。 使用递归函数需要注意防止栈溢出。 在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧...
【大纲】 0-1-课程内容和安排介绍 1-1-计算机的概念 ...第6章-函数与递归-2-函数的调用和返回值 第6章-函数与递归-3-改变参数值的函数 第6章-函数与递归-4-程序结构和递归 第6章-函数与递归-5-函数实例
【大纲】 0-1-课程内容和安排介绍 1-1-计算机的概念 ...第6章-函数与递归-2-函数的调用和返回值 第6章-函数与递归-3-改变参数值的函数 第6章-函数与递归-4-程序结构和递归 第6章-函数与递归-5-函数实例
python 递归算法 Python递归算法是一种非常重要的算法,它可以解决许多复杂的问题。递归算法是一种自我调用的算法,它通过将问题分解成更小的子问题来解决问题。在Python中,递归算法可以使用函数来实现。 递归算法...
【大纲】 0-1-课程内容和安排介绍 1-1-计算机的概念 ...第6章-函数与递归-2-函数的调用和返回值 第6章-函数与递归-3-改变参数值的函数 第6章-函数与递归-4-程序结构和递归 第6章-函数与递归-5-函数实例
Python 递归函数 如果一个函数体直接或者间接调用自己,那么这个函数就称为递归函数.也就是说,递归函数体的执行过程中可能会返回去再次调用该函数.在python里,递归函数不需要任何特殊的语法,但是它需要...
递归函数1.定义递归函数: 就是在函数里面调用函数本身(函数自己调用自己)作用: 解决需要重复做的操作(循环可以做到的,递归一般都可以实现)2.写一个递归函数的
递归函数 哈尔滨工业大学 计算机学院 叶麟 函数体 函数头 复习 – 函数 f(x) = x2 – 2x + 1 def f(x): y = x ** 2 – 2 * x + 1 return y 关键字 函数名 参数 缩进 函数:是完成特定功能的一个语句组 ,通过函数名...
JSINFO-SCAN:递归式寻找域名和API
用T-SQL 递归函数实现 T-SQL没有数组打印杨辉三角还是有点难度的,不过用递归函数就可以轻松实现
Decodify - 递归地检测和解码编码的字符串
【基础算法】-python递归冒泡排序法 # Python 中使用递归实现冒泡排序的方法: def bubble_sort_recursive(arr, n=None): if n is None: n = len(arr) if n == 1: return arr for i in range(n-1): if arr[i] ...
从零开始Python实现一个递归下降JSON解释器和生成器
【大纲】 0-1-课程内容和安排介绍 1-1-计算机的概念 ...第6章-函数与递归-2-函数的调用和返回值 第6章-函数与递归-3-改变参数值的函数 第6章-函数与递归-4-程序结构和递归 第6章-函数与递归-5-函数实例
【大纲】 0-1-课程内容和安排介绍 1-1-计算机的概念 ...第6章-函数与递归-2-函数的调用和返回值 第6章-函数与递归-3-改变参数值的函数 第6章-函数与递归-4-程序结构和递归 第6章-函数与递归-5-函数实例
使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。 使用步骤: ...目的:帮助理解递归函数在Python中的具体使用。
具有递归点符号访问的Python字典
演示了如何把低效率的递归函数转换成非递归的函数并完成相同的计算。