函数递归出口的重要性!

断了今生、忘了曾经 提交于 2020-01-15 08:40:40

函数的递归

一个函数内部调用自己
函数内部可以调用其他函数,当然在函数内部也可以调用自己
代码特点:

  1. 函数内部的代码是相同的,只是针对参数不同,处理的结果不同
  2. 当参数满足一个条件时,函数不在执行
    这个非常重要:通常被称为递归的出口,否则会出现死循环!
    在这里插入图片描述

递归函数的特点

def sun_number(num):
    print(num)
    #递归的出口,当参数满足某个条件时,不再执行函数
    if num ==1:
        return
    # 自己调用自己
    sun_number(num -1)
a=sun_number(3)

在这里插入图片描述

递归代码的执行流程图

在这里插入图片描述自己写的执行步骤:
在调用函数sun_number时:
第一步:执行的是把实参3传递给函数内部的形参num,
第二步:打印num参数
第三步:判断如果 num == 1则返回1:否则执行下面的代码,
在这里函数又调用了一次函数Sun_number(num-1)
第四步:这时再一次调用函数sun_number时,参数num已经为2了
第二次调用sun_number
第五步:调用函数sun_number,再把2传递给函数内部的num
第六步:判断如果 num 1 则返回1:否则执行下面的代码
在这里执行又调用了一次函数sun_number(num - 1),这时在把执行函数完成时
参数num已经为1了
第三次调用sun_number
第七步:调用函数sun_number,再把1传递个函数内部的num
第八步:打印输出num=1
第九步:判断如果num
1则返回1,符合条件则执行return num =1
第十步:当第三次执行完这个函数后,就会回到上一次调用函数的位置,一层一层的返回
最后出去,整个程序则执行完成,

而return就是这个递归函数很重要的出口

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!