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

执行过程
5.1 Python高阶特性之递归函数_第1张图片

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)

5.1 Python高阶特性之递归函数_第2张图片

3、斐波那契数列的递归

何谓 斐波那契数列?? — 可自行百度
5.1 Python高阶特性之递归函数_第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)

5.1 Python高阶特性之递归函数_第4张图片

你可能感兴趣的:(Python自动化测试,递归函数,递归,字符逆置,python)