递归:函数调用自身

递归函数的特点

  • 一个函数在内部调用自己

代码特点

  • 函数内部的代码是相同的,只是针对参数不同,处理的结果不同
  • 当参数满足一个条件是,函数不再执行。通常被称作递归的出口,很重要,否则会出现死循环。
def sum_numbers(num):print(num)# 递归的出口,当参数满足某一个条件时,不再执行函数if num == 1:returnsum_numbers(num-1)sum_numbers(3)

执行结果:

图解上述递归代码:

递归案例 —— 计算数字累加

需求

  1. 定义一个函数sum_numbers
  2. 能够接收一个整形的参数
  3. 计算1+2+···+num的结果
def sum_numbers(num):# 出口if num == 1:return 1# 数字累加# 假设sum_numbers能够正确处理1+2+···+num-1temp = sum_numbers(num - 1)# 核心代码两个数字相加return num + tempprint(sum_numbers(2))
print(sum_numbers(3))
print(sum_numbers(100))

执行结果:

图解上述递归代码:

递归在处理不确定的循环条件的时候非常有用。
例如:遍历整个文件目录的结构

Python:学习笔记之函数的递归相关推荐

  1. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  2. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  3. 小甲鱼python003答案_小甲鱼:Python学习笔记003_函数

    >>> # 函数 >>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!" ...

  4. Python学习笔记——一些函数

    本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9 基础知识1: input( )函数 input()函数从控制台获得用户输入,无论用户在 ...

  5. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  6. Python学习笔记:函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记 - 探索函数定义和使用

    大家好,我是Mr数据杨,你们有没有读过<三国演义>呢?没错,将以这个经典的古代战争史诗为引,来探索Python的诸多神奇之处. 首先来说说函数的重要性.诸葛亮一生献出了不少锦囊妙计,这些计 ...

  8. Python学习笔记:匿名函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. python学习笔记三一 函数学习

    函数学习 range函数 •生成有序的序列 •生成数字队列可以定制 # range函数案例1 # 生成一个从1到10的数字序列 # range的生成序列的两个面数字是左包括,右不包括(如下所示只包括1 ...

  10. python学习笔记(四):函数

    一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...

最新文章

  1. mac mysql 5.7.9安装教程_mac系统OS X10.10版本安装最新5.7.9mysql的方法_MySQL
  2. Linux查看ice版本,Linux下ICE的安装
  3. 【spring boot】 禁用/关闭数据源/DataSource
  4. SAP CRM long text harmonization debug
  5. JavaFX图表(七)之散点图
  6. drwxrwxrwx_你可能不知道的一些linux文件权限管理方法
  7. java反射回调函数_java回调函数
  8. HTTPS加密原理(转)
  9. sklearn 线性回归_机器学习初级算法(二)——线性回归
  10. plc编程有哪些方法?
  11. word如何去掉背景色
  12. 计算机网络-应用层和传输层协议分析实验(PacketTracer)
  13. 【MFC】CSplitterWnd 重载限定窗口调整范围
  14. 【JavaWeb学习】HTML
  15. 20个月积累10,000+客户诸葛io放行业“连弩”
  16. 中国好SaaS走进海尔:企业关注重心从纯模式创新回归资源竞争
  17. 我如何成为高级软件工程师
  18. R matrix函数详解
  19. 如何使用华为云快速搭建个人博客
  20. 证件照怎么改kb大小?这两种方法分分钟解决

热门文章

  1. 19. 网购秒杀系统架构分析
  2. 2. node.js 模块管理机制
  3. 37. 错误与异常处理(1)
  4. jquery中的尺寸函数width(),height(),innerWidth(),outerWidth()等的用法
  5. 正则爬取猫眼电影排行榜 待修改版
  6. 4 个拥有绝佳命令行界面的终端程序
  7. ubuntu linux 1604 编译安装tesseract-ocr 4.0
  8. Implement Stack using Queues
  9. poj 2828 线段树
  10. 大学校讯通需求调研报告之精华