《Python进阶之递归函数的用法及其示例.docx》由会员分享,可在线阅读,更多相关《Python进阶之递归函数的用法及其示例.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Python进阶之递归函数的用法及其示例|程序员adny责编|徐威龙封图|CSDN下载于视觉中国出品|AI科技大本营IDrgznai100本篇文章主要介绍了Python进阶之递归函数的用法及其例如如今共享给大众也给大众做个参考。一起来看看吧。递归是指函数/经过/子程序在运行经过序中直接或者间接调用自身而产生的重入现象。在计算机编程里递归指的是一个经过函数不断引用自身直到引用的对象已知。使用递归解决问题思路明晰代码少。但是在主流高级语言中如C语言、Pascal语言等使用递归算法要耗用更多的栈空间所以在堆栈尺寸受限制时如嵌入式系统或内核态编程应防止采用。所有的递归算法都可以改写成与之等价的非递归算
2、法。来源于百度看不懂正常术语就是不讲人话下面是笔者的个人理解递归就是在函数内部调用自己的函数被称之为递归。看不懂形象的举几个例子一个洋葱是一个带着一层洋葱皮的洋葱。递归就是包子馅的包子它的极限是馒头。真的形象有点扯远了言归正传下面我们通过递归来理解递归实例#直接调用自己deffunc():print(fromfunc)func()func()#间接调用自己deffoo():print(fromfoo)bar()defbar():print(frombar)foo()foo()#递归的实现defage(n):ifn1:return18returnage(n-1)2print(age(5)#age
3、(5)age(4)2第一次进入#age(4)age(3)2第二次进入#age(3)age(2)2第三次进入#age(2)age(1)2第四次进入#age(1)18第五次进入最后判断终止条件#age(n)age(n-1)2#n1递归终止条件#age(1)18#n1等于终止条件递归的回溯与递推递推像上边递归实现所拆解递归每一次都是基于上一次进展下一次的执行这叫递推。回溯那么是在遇到终止条件那么从最后往回返一级一级的把值返回来这叫回溯。#实例l1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19defsearch(l):foriteminl:iftype(item
4、)islist:search(item)else:print(item)search(l)实例代码阶乘deffact(n):ifn1:return1returnn*fact(n-1)上面就是一个实现阶层的递归函数我们来试一试。fact(1)1fact(5)120fact(100)93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000可能
5、有点懵吧来看一看计算经过吧fact(5)5*fact(4)5*(4*fact(3)5*(4*(3*fact(2)5*(4*(3*(2*fact(1)5*(4*(3*(2*1)5*(4*(3*2)5*(4*6)5*24120斐波那契数列deffib(n):ifn2:returnnelse:returnfib(n-1)fib(n-2)这个不难还是去看下一个例子吧汉诺塔defhanoti(n,x1,x2,x3):if(n1):print(move:,x1,-,x3)returnhanoti(n-1,x1,x3,x2)print(move:,x1,-,x3)hanoti(n-1,x2,x1,x3)哈哈肯定看不懂吧没事看看流程图你会豁然开朗【end】原力方案?原力方案【第二季】-学习力挑战?正式开场即日起至3月21日千万流量支持原创更有专属【勋章】等你来挑战推荐浏览Google重磅发布开源库TFQ快速建立量子机器学习模型你点的每个“在看我都认真当成了AI