函数递归出口的重要性!

函数的递归

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

  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就是这个递归函数很重要的出口

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值