python学习笔记-12.函数的递归
1. 函数的递归
函数调用自身的编程技巧成为递归。
1.1 递归的特点
一个函数内部调用自己。
代码特点
- 函数内部的代码是相同的,只是针对参数不同,处理结果不同。
- 当参数满足一个条件时,函数不再执行。
– 这个非常重要,通常被称为递归的出口,否则会出现死循环!
举个栗子
def sum_number(num):
print(num)
# 递归的出口,当参数满足某个条件时,不再执行函数
if num == 1:
return
# 自己调用自己
sum_number(num - 1)
sum_number(3)
output:
3
2
1
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 = sum_numbers(num-1)
# 两个数字的相加
return num + temp
result = sum_numbers(100)
print(result)
output:
5050
NOTE: 递归是一个编程技巧,在处理不确定的循环条件时,格外有用,例如:遍历整个文件目录的结构。