1.递归应用场景:
1.1 遍历一个文件夹下面所有文件
1.2 快速排序
2.递归特点:
2.1 函数内部自己调用自己
2.2 必须有出口
- 例程:计算3以内数字累加和
# 需求: 3以内数字累加和 3 + 2 + 1 = 6
# 6 = 3 + 2
# 2以内数字累加和 = 2 + 1以内数字累加和
# 1以内数字累加和 = 1 这就是出口
# 递归函数
def sum_numbers(num):
# 出口
if num == 1:
return 1
# 递归
return num + sum_numbers(num - 1)
result = sum_numbers(3)
print(result)
执行流程图:
递归如果没有出口会递归下去,但不像while死循环一样,电脑是由一定的递归深度的,一般是996,超过这个递归深度就会报错,所以并不会像while死循环占用电脑cpu。