简介:
Python中的递归函数是一种调用自身的函数。递归是一种强大的编程技术,它允许函数通过调用自身的实例来解决复杂的问题。递归函数通常有两个主要部分:
- 基本情况(Base Case):这是递归结束的条件。没有基本情况,递归将无限进行下去,最终导致栈溢出错误。
- 递归步骤(Recursive Step):这是函数调用自身的部分。
一个函数在内部调用了其本身,那个这个函数就是递归函数,粗暴的理解:函数内部自己调用自己
注意:使用递归容易产生栈溢出的错误递归一定要有出口,否则就是 " 死循环 " 的递归递归的次数不能太多
1
递 :程序不断深入地调用自身,通常传入更小或更简化的参数,直到达到 " 终止条件 "归 :触发 " 终止条件 " 后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果
以下案例是实现10以内的阶乘:
def
jie_cheng
(
num
:
int
)
->
int
:
count
=
1
for
i
in
range
(
1
,
num
+
1
):
count
*=
i
return
count
print
(
jie_cheng
(
10
))#3628800
递归如何实现?
递归思想
递归其主要思想在于:
- 将问题分为规模更小的相同问题,持续分解,直到问题规模小到可以用非常简单直接的方式来解决。
- 分解完后,再合并结果。
分析得递归的3个主要因素
1 递归调用 :对应 " 递 " ,函数调用自身,通常输入更小或更简化的参数2 终止条件 :用于决定什么时候由 " 递 " 转 " 归 "3 返回结果 :对应 " 归 " ,将当前递归层级的结果返回至上一层
总结
递归是解决问题的一种优雅方式,但需要谨慎使用!!!,以确保程序的效率和稳定性。