5.1 Python高级特性之递归函数

基本概念:

     如果一个函数在内部调用自身本身,这个函数就是递归函数
     
     使用递归函数的优点是逻辑简单清晰,缺点是递归过深会导致栈溢出。
     【注意】 递归函数定义时, 一定存在某个条件能结束执行, 递归最重要的就是需要避免死循环的出现和逻辑关系的正确性

经典案例

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 ==1return 1
         elsereturn  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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值