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 递归的案例 – 计算数字累加

需求:

  1. 定义一个函数sum_numbers
  2. 能够接受一个num的整数参数
  3. 计算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: 递归是一个编程技巧,在处理不确定的循环条件时,格外有用,例如:遍历整个文件目录的结构。