函数的递归
函数调用自身的 编程技巧 称为递归
1、递归函数的特点
特点
- 一个函数 内部 调用自己
- 函数内部可以调用其他函数,当然在函数内部也可以调用自己
代码特点
-
函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同
-
当 参数满足一个条件 时,函数不再执行
这个非常重要,通常被称为递归的出口,否则 会出现死循环!
代码示例
def sum_numbers(num):
print(num)
# 递归的出口很重要,否则会出现死循环
if num == 1:
return
sum_numbers(num - 1)
sum_numbers(3)
结果:
3
2
1
2、递归案例 —— 计算数字累加
需求
- 定义一个函数
sum_numbers
- 能够接收一个
num
的整数参数 - 计算 1 + 2 + … num 的结果
代码示例:
def sum_numbers(num):
# 1. 出口
if num == 1:
return 1
# 2. 数字的累加 num + (1...num -1)
# 假设 sum_numbers 能够正确的处理 1...num - 1
# temp保存的是1到num-1的累加结果
temp = sum_numbers(num - 1)
# 两个数字的相加
return num,temp
result = sum_numbers(100)
print(result)
结果:
5050
以下是对比代码,以便于递归函数内部数据操作的理解:
def sum_numbers(num):
# 1. 出口
if num == 1:
return 1
# 2. 数字的累加 num + (1...num -1)
# 假设 sum_numbers 能够正确的处理 1...num - 1
# temp保存的是1到num-1的累加结果
temp = sum_numbers(num - 1)
# 两个数字的相加
return num,temp
result = sum_numbers(5)
print(result)
结果:
(5, (4, (3, (2, 1))))
提示:递归是一个 编程技巧,在处理 不确定的循环条件时,格外的有用,例如:遍历整个文件目录的结构
博客作为笔记记录学习内容,方便后期温习,若有错误处请大家积极指正!