怎么在Python3中使用递归函数
本篇文章给大家分享的是有关怎么在Python3中使用递归函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
概述
递归函数即直接或间接调用自身的函数,且递归过程中必须有一个明确的递归结束条件,称为递归出口。递归极其强大一点就是能够遍历任意的,不可预知的程序的结构,比如遍历复杂的嵌套列表。
递归求和
我们可以利用递归函数实现一个Python内置函数sum()的递归版。
#递归 defd_sum(L): ifnotL: return0 else: returnL[0]+d_sum(L[1:]) sum_l=d_sum(range(10)) print(sum_l)
示例结果
45
该递归函数怎么实现列表元素相加的呢? 我们知道函数是有本地作用域的,对函数调用的每一个打开的时候,在运行时调用堆栈上都有自己的一个本地作用域的副本,即L在每个层级都是不同的,比如我们可以通过每次调用时添加一个打印语句,更加直观展示每个层级L的情况
#递归 defd_sum(L): #打印该层级L print(L) ifnotL: return0 else: returnL[0]+d_sum(L[1:]) #构建0-10数字元素列表 L=[iforiinrange(10)] sum_l=d_sum(L) print(sum_l)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9][1, 2, 3, 4, 5, 6, 7, 8, 9][2, 3, 4, 5, 6, 7, 8, 9][3, 4, 5, 6, 7, 8, 9][4, 5, 6, 7, 8, 9][5, 6, 7, 8, 9][6, 7, 8, 9][7, 8, 9][8, 9][9][]45
处理任意结构
比如我们可以利用递归计算一个嵌套的子列表结构中所有数字的总和
defdd_sum(L): tot=0 forxinL: ifnotisinstance(x,list): tot+=x else: tot+=dd_sum(x) returntot #嵌套列表 L=[1,[2,3],[4,[5,6,7],8],9] sum_l=dd_sum(L) print(sum_l)
示例结果:
45
以上就是怎么在Python3中使用递归函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。
推荐阅读
-
在 Linux上安装 pip3 的完整步骤
-
Python3的re.match函数语法是什么
Python3的re.match函数语法是什么这篇文章主要介绍“P...
-
Python3的re.match函数怎么用
Python3的re.match函数怎么用本篇内容主要讲解“Pyt...
-
Python3的re.search函数语法是什么
Python3的re.search函数语法是什么本文小编为大家详细...
-
Python3的re.search方法怎么用
Python3的re.search方法怎么用本篇内容主要讲解“Py...
-
Python3中re.match与re.search的区别是什么
Python3中re.match与re.search的区别是什么本...
-
Python3中SMTP的语法是什么
Python3中SMTP的语法是什么本文小编为大家详细介绍“Pyt...
-
怎么在Python3中使用OpenCV实现实时摄像头人脸检测
怎么在Python3中使用OpenCV实现实时摄像头人脸检测这篇文...
-
python3(scrapy框架的执行流程)
python3,scrapy框架的执行流程,恰卡网带你了解更多相关信息。scrapy框架概述:Scrapy,Python开...
-
Python3 A*寻路算法的示例分析
这篇文章主要介绍了Python3A*寻路算法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有...