5.2.6 递归函数
递归函数(Recursive Function),利用函数自己调用自己的过程,解决一类需要重复处理问题的一种代码算法。理论上所有的循环操作都可以通过递归函数来实现。
1.求1到5累加和的递归
求1到5累加和,通过递归函数来实现,其代码如下:
代码文件:5_2_6_Recursion.py

上述代码执行结果如下:

2.递归原理说明(https://www.daowen.com)
以上例求1到5的累加和为例,其在内存里一步步开辟临时存储过程,记录每次递归调用过程;最后满足递归返回条件x==1时,通过return往回返回值,其过程如图5.3所示。

图5.3 1到5递归累加过程
从图5.3可以看出,递归算法分两个步骤实现。
第一步骤,递归调用自己,并在内存依次开辟每个调用的临时存储空间,用于记录每次递归调用的过程状态;图5.3体现为左边从上到下,一步步开辟存储空间。
第二步骤,递归返回值,图5.3体现为右边从下往上的一个个气泡里的数值。如最右下角的1返回到第四次递归调用的Add1(1)处,则得到2+1=3后继续往上返回。
注意
递归过程,需要在内存临时开辟内存空间,用于记录过程状态,当递归次数变大时,很容易消耗大量的内存空间,引起内存空间不足等问题,所以递归次数需要合理控制。