前言:本博文主要讲解Python中的递归,以前在C#中也讲过递归的一些知识——深刻理解C#方法重载和递归,有兴趣的朋友能够阅读一下!
python
递归是一种编程思想,应用场景:web
递归的特色:算法
递归算法:递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。编程
# 3 + 2 + 1 def sum_numbers(num): # 1.若是是1,直接返回1 -- 出口 if num == 1: return 1 # 2.若是不是1,重复执行累加并返回结果 return num + sum_numbers(num-1) sum_result = sum_numbers(3) # 输出结果为6 print(sum_result)
# 阶乘函数 def Fact(n): if n == 1: return 1 return n * Fact(n-1)
def Fibo(n): # 出口 if n == 1 or n == 2: return 1 else: return Fibo(n - 1) + Fibo(n - 2)
- 递推:像上边递归实现所拆解,递归每一次都是基于上一次进行下一次的执行,这叫递推。
- 回溯:则是在遇到终止条件,则从最后往回返一级一级的把值返回来,这叫回溯。
补充:本博文关于递归的故事案例、图片案例均引用自知乎,感谢读者阅读!数据结构