前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「Python」递归函数(递归特点和递归案例)

「Python」递归函数(递归特点和递归案例)

原创
作者头像
python自学网
发布2022-06-15 13:47:31
3K00
代码可运行
发布2022-06-15 13:47:31
举报
文章被收录于专栏:python+前端 知识分享
运行总次数:0
代码可运行

函数调用自身的编程技巧称为递归。

一、递归函数的特点

特点:

一个函数内部调用自己,函数内部可以调用其他函数,当然在函数内部也可以调用自己。

代码特点:

1. 函数内部的代码是相同的,只是针对参数不同,处理的结果不同

2. 当参数满足一个条件时,函数不再执行。这个非常重要,通常被称为递归的出口,否则会出现死循环

示例代码:

代码语言:python
代码运行次数:0
复制
def sum_numbers(num):
    print(num)
    # 递归的出口很重要,否则会出现死循环
    # 递归的出口:当参数满足一定条件时,不再执行函数
    if num == 1:
        return

    # 自己调用自己
    sum_numbers(num - 1)


sum_numbers(3)

执行结果:

上面代码执行过程示意图:

文字解释:

解释器执行到第一行代码发现是一个函数后继续向下,来到第13行调用函数,回到第一行代码,输出num此时是3,继续向下执行到判断语句不满足条件继续向下执行,来到第9行代码,调用函数此时参数是num-1=2,来到第1行代码输出num是2,继续向下执行到判断语句不满足条件继续向下执行,到第9行调用函数,此时参数是2-1=1,来到第1行输出num是1,继续向下执行此时满足条件,出现return后面的代码都不执行,然后返回到上一次调用函数时的代码,看调用函数下面有没代码,有就执行代码此时输出结果是完成2,继续返回到上一次调用函数位置此时输出结果是完成3,当代码全部执行完,回到最初第一次调用函数位置也就是第13行。

二、递归案例 - 计算数字累加

需求:

1. 定义一个函数 sum_numbers

2. 能够接收一个 num 的整数参数,

3. 计算1+2+...num的结果

示例代码

代码语言:python
代码运行次数:0
复制
def sum_numbers(num):
    # 1. 出口
    if num == 1:
        return 1

    # 2. 数字的累加num+(1...num - 1)
    # 假设sum_numbers能够正确处理1...num-1
    temp = sum_numbers(num - 1)

    return num + temp


# result = sum_numbers(1)
result = sum_numbers(100)
print(result)

执行结果:

核心重点是这个部分:做了一个假设

以上执行流程示意图:

提示:递归是一个编程技巧,初次接触递归会感觉有些吃力,在处理不确定的循环条件时,格外的有用,例如遍历整个文件目录的结构。

以上就是对递归函数的相关介绍,后面开始介绍面向对象,这个也是编程语言中重要且难的知识点了,或许文字教程不会很通透但是也有Python视频教程在python自学网

文章借鉴来源: python自学网 http://www.wakey.com.cn/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、递归函数的特点
  • 二、递归案例 - 计算数字累加
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档