当前位置: 首页 > 后端技术 > Python

Python语言程序---代码重用与函数递归(三)

时间:2023-03-25 19:36:16 Python

代码重用与函数递归(三)函数递归在函数定义中,调用函数本身的方式就是递归。递归不是编程的专有名词,它在数学中也广泛存在。例如:n!。在n!中,我们定义当n=0时,n!为1;否则,剩下的n!=n*(n-1)!这是一种递归形式。递归的定义中有两个关键属性:链接和基本情况。链是指递归定义,其计算过程具有递归有序的链关系。例如:n!=n*(n-1)!,则n!和(n-1)!形成一个递归链。basecase是指存在一个或多个不需要再次递归的实例,例如:当n=0时,定义n!取值为1,是一种basecase,它和其他取值关系之间没有递归,已经是递归的终点了。这两个关键特征构成了递归的定义,缺少任何一个都不构成递归。它在数学上被称为数学归纳法,递归也可以认为是数学归纳法思维在程序设计中的一种体现。可见,要实现递归,需要函数和分支语句的结合。首先,递归本身就是一个函数,因为它需要调用自己,如果不是函数定义的,很难调用自己。然后在函数内部,需要区分basecase和chain,所以用了一个分支语句来判断输入参数。如果输入参数是基本情况的参数条件,我们必须给出基本情况的代码。如果不是basecaseConditions的参数,我们需要用一个链来表达这个递归关系。!当计算机调用函数时,会开辟内存,复制函数内容,代入参数进行计算。递归好像调用的是同一个函数,但是在计算机内存中是不一样的。它会不断地开辟内存、复制函数、代入参数等操作。推荐观看:笨方法学Python!编程新手第一本Python入门书!思维导图笔记