美文网首页
python 递归函数

python 递归函数

作者: 足__迹 | 来源:发表于2019-08-10 19:12 被阅读0次

递归函数

  • 递归函数 : 在函数的调用自身
  • 递归边界 : 退出递归的终止条件
  1. 例1,函数func如果没有设备递归边界,就对达到python的最大深度1000从而报错
def func(n):
    if n == 1: # 递归边界
        return
    print(n)
    func(n-1)
func(10)

2,例2.累加

def func_add(n):
    #判断n是否等于1
    if n ==1:
        return 1
    else: # 
       return  func_add(n-1) + n
  • 获取最大递归次数
import sys
print(sys.getrecursionlimit())
  • 设置最大递归次数
sys.setrecursionlimit(5000)

缓存装饰器

通过缓存装饰器可以将相同调用的结果给缓存起来,方便下次使用大大减少了缓存的压力

  • @lru_cache


    image.png

    例如;爬楼梯的计算,100阶楼梯,一次爬1阶,2阶,3阶的有多少种方法

from functools import lru_cache

@lru_cache(maxsize=128)
def function_999(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    if n == 3:
        return 4
    else:
        return function_999(n - 1) + function_999(n - 2) + function_999(n - 3)


print(function_999(100))

相关文章

网友评论

      本文标题:python 递归函数

      本文链接:https://www.haomeiwen.com/subject/lmnrjctx.html