首页 > 其他分享 >递归函数

递归函数

时间:2022-10-12 18:36:54浏览次数:50  
标签:index 调用 get age 递归函数 func print

一、递归函数

函数的递归调用

函数在运行过程中,直接或间接地调用了自身。

最大递归深度:python解释器添加的安全措施

官网表示:python默认最大递归深度为1000次,我们在测试的时候可能会出现996,997,998

1. 直接调用 

def index():
    print('from index')
    index()     # 直接调用
index()

2. 间接调用 

def index():
    print('from index')
    func()

def func():
    print('from func')
    index()

func()

 

递归函数

原则:

1. 直接或者间接调用自己
2. 每次调用都必须比上一次简单 并且需要有一个明确的结束条件
递推:一层层往下
回溯:基于明确的结果一层层往上

"""
get_age(5) = get_age(4) + 2
get_age(4) = get_age(3) + 2
get_age(3) = get_age(2) + 2
get_age(2) = get_age(1) + 2
get_age(1) = 18
"""
def get_age(n):
    if n == 1:
        return 18
    return get_age(n-1) + 2
res = get_age(5)
print(res)

 

标签:index,调用,get,age,递归函数,func,print
From: https://www.cnblogs.com/chen-ao666/p/16785524.html

相关文章

  • 多层语法糖&有参装饰器&装饰器修复技术&递归函数
    目录一.多层语法糖二.有参装饰器1.什么是有参装饰器:2.实操3.装饰器模板三.装饰器修复技术四.递归函数1.函数的递归调用2.递归函数一.多层语法糖语法糖会将下面紧挨着的......
  • python进阶之路12之有参装饰器、多层语法糖、递归函数简介
    多层语法糖defoutter1(func1):print('加载了outter1')defwrapper1(*args,**kwargs):print('执行了wrapper1')res1=func1(*args,**kwa......
  • 15、python函数篇 多层语法糖、装饰器和装饰器修复技术及递归函数
    目录一、多层语法糖1、什么是多层语法糖:2、多层语法糖用法:二、有参装饰器1、什么是有参装饰器:2、有参装饰器的作用:三、装饰器修复技术1、什么是装饰器修复技术:四、递归函数......
  • 多参装饰器/多层语法糖/递归函数
    目录今日内容概要1.多层语法糖2.有参装饰器3.装饰器模板4.装饰器修复技术5.递归函数6.作业今日内容概要多层语法糖有参装饰器装饰器模板装饰器修复技术递归函数练......
  • 原始递归函数及模拟运行的优化
    看到网上一个题目,证明x开y次方是原始递归函数(primitiverecursivefunction)。这个问题并不难,只要把x开y次方实现出来即可。于是,正好把《递归论》相关内容补一补。【......
  • 用递归函数和栈操作逆序栈
    用递归函数和栈操作逆序栈作者:Grey原文地址:博客园:用递归函数和栈操作逆序栈CSDN:用递归函数和栈操作逆序栈题目描述请设计一个算法实现逆序栈的操作,但是只能用递归函......
  • Go基础编程:递归函数、函数类型、匿名函数与闭包
    1.递归函数递归指函数可以直接或间接的调用自身。递归函数通常有相同的结构:一个跳出条件和一个递归体。所谓跳出条件就是根据传入的参数判断是否需要停止递归,而递归体则是......
  • python接口测试3-使用递归函数
    递归函数,自己调用自己,达到某一条件时停止调用。我理解的是类似于两个正面对着的镜子,镜子中的画面不停重复,直到某一个时刻停止。1、使用场景:需要提取某个接口的返回数据,返......
  • 手写编程语言-递归函数是如何实现的?
    前言本篇文章主要是记录一下在GScript中实现递归调用时所遇到的坑,类似的问题在中文互联网上我几乎没有找到相关的内容,所以还是很有必要记录一下。在开始之前还是简单......
  • 数据结构实验(二)递归函数练习
    6-1递归法求Fibonacci数列第n项的值这道题就是写一个简单的递归函数即可intfun(intn){if(n==1||n==2)return1;returnfun(n-1)+fun(n-2);}......