基本概念:
     如果一个函数在内部调用自身本身,这个函数就是递归函数
     
     使用递归函数的优点是逻辑简单清晰,缺点是递归过深会导致栈溢出。
     【注意】 递归函数定义时, 一定存在某个条件能结束执行, 递归最重要的就是需要避免死循环的出现和逻辑关系的正确性
经典案例
1、 计算阶乘n! = 1 x 2 x 3 x … x n
  fun(n) =  n! = 1 x 2 x 3 x ... x n
  fun(1) = 1
  fun(2)=  1*2 = fun(1)*2
  .
  .
  .
  fun(n)=fun(n-1)* n
 则可以推导出fun(n) 推导如下结论:
  def func(n):
         if n ==1:
              return 1
         else:
              return  fun(n-1) *n
执行过程
 
2、 递归模拟实现字符串的逆置
此方法不唯一,主要以个人思路
def reverse_str(str1: str):
    if len(str1) <= 1:
        return str1
    else:
        return str1[-1] + reverse_str(str1[:-1])
v = "v01234567890"
aa = reverse_str(v)
print(aa)

3、斐波那契数列的递归
何谓 斐波那契数列?? — 可自行百度
 
def fibonacci_sequence(n):
    """均建立在是正正数前提>1="""
    if n <= 2:
        return 1
    else:
        return fibonacci_sequence(n - 2) + fibonacci_sequence(n - 1)
fs3 = fibonacci_sequence(3)
fs7 = fibonacci_sequence(7)
fs10 = fibonacci_sequence(10)
print(fs3)
print(fs7)
print(fs10)



![[英语单词] components;](https://img-blog.csdnimg.cn/81a2a1d1622a47d3bc441bd41973d0f1.png#pic_center)
















