Python函数递归调用实现原理实例解析


Posted in Python onAugust 11, 2020

函数的递归调用:

是函数嵌套调用的一种特殊形式

具体是指:

在调用一个函数的过程中又直接或间接地调用到了本身

# 直接调用本身
def func():
  print('我是func')
  func()

func()
# 函数会不断的运行永远不会结束,但Python不允许这种情况,会默认限制只能调1000次.

# 间接调用本身
def f1():
  print('我是f1')
  f2()
  
def f2():
  print('我是f1')
  f1()

f1()
# 此时也相当于直接调用本身,f1-->f2-->f1-->f2-->f1。。。同样会不断循环

递归不应该无限的调用下去,必须在满足某种条件下结束递归

# 写一个函数获取0-9
def f1(n):
  if n == 10:
    return
  print(n)
  n += 1
  f1(n)
f1(0)
# 0 1 2 3 4 5 6 7 8 9

递归的两个阶段:

1、回溯:一层一层调用下去

2、递推:满足某种条件,结束递归调用,然后一层一层返回。

递归的应用:

例如打印出一个嵌套多层列表内的所有元素

li = [1,2,[3,4,[5,6,[7,8],9]]]
def func(l):
  for i in l:
    if type(i) is list:
      func(i)
    else:
      print(i)

func(li)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python解析xml成对应的html示例分享
Apr 02 Python
python脚本实现分析dns日志并对受访域名排行
Sep 18 Python
python如何读写csv数据
Mar 21 Python
对Python中gensim库word2vec的使用详解
May 08 Python
Python中按值来获取指定的键
Mar 04 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 Python
零基础学python应该从哪里入手
Aug 11 #Python
Python如何测试stdout输出
Aug 10 #Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 #Python
常用的10个Python实用小技巧
Aug 10 #Python
推荐值得学习的12款python-web开发框架
Aug 10 #Python
python多线程semaphore实现线程数控制的示例
Aug 10 #Python
如何在python中实现线性回归
Aug 10 #Python
You might like
php 无限级缓存的类的扩展
2009/03/16 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
Vue.js实现数据响应的方法
2018/08/13 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
python实现简单登陆流程的方法
2018/04/22 Python
Django 视图层(view)的使用
2018/11/09 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
python实现名片管理器的示例代码
2019/12/17 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
造价工程师个人求职信
2013/09/21 职场文书
岗位职责的含义
2013/11/17 职场文书
毕业生自荐信
2013/12/14 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
环保标语大全
2014/06/12 职场文书
师德师风的心得体会
2014/09/02 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
安阳殷墟导游词
2015/02/10 职场文书
教师节获奖感言
2015/07/31 职场文书
七年级作文之秋游
2019/10/21 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
html5调用摄像头实例代码
2021/06/28 HTML / CSS
Python制作一个随机抽奖小工具的实现
2021/07/07 Python