Python 递归函数详解及实例
2016-12-27 09:23
711 查看
如果一个函数体直接或者间接调用自己,那么这个函数就称为递归函数.也就是说,递归函数体的执行过程中可能会返回去再次调用该函数.在python里,递归函数不需要任何特殊的语法,但是它需要付出一定的努力去理解和创建.
我们会以一个简单的例子开始:写一个函数求一个自然数中所有数字的和.在设计递归函数的时候,我们会寻找能把问题分解成简单的问题的方法.在这道题中,运算符%和//可以用来把一个数分成两部分:最低位和不包含最低位数字两部分.
18117的数字和为:1+8+1+1+7=18.这样我们就可以分割这个数.把这个数分割成最低位7和不包含最低位数字的和1+8+1+1=11.这种分割方法给我们提供了一个算法:通过最低位n%10与n//10的数字之和相加来计算数n的数字之和.这种方法存在特殊情况:如果一个数只有一位,那么它的数字之和就是它本身.这个算法可以用递归函数实现.
def sum_digit(n): """return the sum of the digit of positive integer n.""" if n < 10: return n else: last = n % 10 all_but_last = n // 10 return sum_digit(all_but_last) + last
函数sum_digit的定义是完整和正确的,即使sum_digit函数在自身的函数体里被调用.
这样求一个数的数字之和的问题就被分解成了两部分:求除去最低位部分数字之和,然后加上最低位.这两个步骤全都比原问题要简单.这个函数是递归的,因为第一步的问题和原问题是相同类型的.也就是说,sum_digit的确实是我们需要去实现自然数数字求和的函数.
我们可以理解这个递归函数是怎样使用计算环境模型成功应用的.它 不需要任何新的规范.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- Python实现的递归神经网络简单示例
- Python基于递归算法实现的走迷宫问题
- Python利用递归和walk()遍历目录文件的方法示例
- Python递归函数定义与用法示例
- python递归查询菜单并转换成json实例
- Python数据结构之栈、队列的实现代码分享
- Python基于list的append和pop方法实现堆栈与队列功能示例
- 栈和队列数据结构的基本概念及其相关的Python实现
- python实现堆栈与队列的方法
- 浅析python递归函数和河内塔问题
- Python爬虫包 BeautifulSoup 递归抓取实例详解
- Python实现FTP上传文件或文件夹实例(递归)
- Python多层嵌套list的递归处理方法(推荐)
- python实现汉诺塔递归算法经典案例
- Python实现递归遍历文件夹并删除文件
- Python递归遍历列表及输出的实现方法
- python递归计算N!的方法
- 讲解Python中的递归函数
- Python通过递归遍历出集合中所有元素的方法
- python 利用栈和队列模拟递归的过程
相关文章推荐
- Python中的 new-style class 及其实例详解
- python闭包详解+实例演示
- python基于mysql实现的简单队列以及跨进程锁实例详解
- Python中的闭包实例详解
- python的迭代器与生成器实例详解
- python中的新型类及其实例详解
- python time模块用法实例详解
- Python time模块详解(常用函数实例讲解,非常好)
- Python 文件读写操作实例详解
- Python基础之函数用法实例详解
- 详解python2 和 python3的区别[附实例]
- python列表与元组详解实例
- python创建和使用字典实例详解
- python基于mysql实现的简单队列以及跨进程锁实例详解
- Python 文件读写操作实例详解
- python闭包详解+实例演示
- python创建和使用字典实例详解
- python中类及其实例详解
- Python文件操作类操作实例详解
- Python基础之函数用法实例详解