函数调用自身的 编程技巧 称为递归。
1.1、递归函数的特点
特点:
一个函数 内部 调用自己。
函数内部可以调用其他函数,当然在函数内部也可以调用自己。
代码特点:
1)、函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同;
2)、当 参数满足一个条件 时,函数不再执行;
这个非常重要,通常被称为递归的出口,否则 会出现死循环!
def sum_number(num):
print(num)
# 递归的出口,当参数满足某个条件时,不再执行函数
if num == 1:
return
# 自己调用自己
sum_number(num - 1)
sum_number(3)
1.2 递归案例 ----- 计算数字累加
需求:
1)、定义一个函数 sum_numbers;
2)、能够接收一个 nums 的整数参数;
3)、计算 1 + 2 = num 的结果;
# 定义一个 函数 sum_numbers
# 能够接收一个 num 的整数参数
# 计算 1 + 2 + .... num的结果;
def sum_numbers(num):
# 1.出口
if num == 1:
return 1
# 数字的累加 num + 1 (1....num - 1)
# 假设 sum_numbers 能够正确的处理 1...num - 1
temp = sum_numbers(num - 1)
# 两个数字的相加
return num + temp
result = sum_numbers(2)
print(result)
提示:递归是一个 编程技巧,初次接触递归会高级有些吃力 在处理 不确定的循环条件时,例如:遍历整个文件目录的结构。