函数的递归
一个函数内部调用自己
函数内部可以调用其他函数,当然在函数内部也可以调用自己
代码特点:
- 函数内部的代码是相同的,只是针对参数不同,处理的结果不同
- 当参数满足一个条件时,函数不在执行
这个非常重要:通常被称为递归的出口,否则会出现死循环!
递归函数的特点
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
第九步:判断如果num1则返回1,符合条件则执行return num =1
第十步:当第三次执行完这个函数后,就会回到上一次调用函数的位置,一层一层的返回
最后出去,整个程序则执行完成,
而return就是这个递归函数很重要的出口