递归:
一个函数内部自己调用自己:函数内部可以调用其他函数,当然在函数内部也可以调用自己
代码特点:
- 函数内部的代码是相同的,只是针对参数不同,处理的结果不同
- 当参数满足一个条件时,函数不再执行,这个递归的出口很重要,否则会出现死循环
关键在于:
1.出口
2.函数,自己调用自己
def sum_number(num):
print(num)
# 缺少出口, 递归出口:当参数满足某个条件时,不再执行函数
if num == 1:
return
# 自己调用自己,传递另外个参数
sum_number(num-1)
sum_number(5)
--->out:
5
4
3
2
1
def sum_numers(num):
# 1. 出口
if num == 1:
return 1
# 2. 假设sum_numers能够正确的处理1....num-1的累加.
# 假设之前条件满足,先考虑假设它能够正常处理
temp = sum_numers(num-1)
# 3. 数字的累加 num +(1...num-1)
return num + temp
result = sum_numers(3)
print(result)
--->out=6
def fact(n):
# 1.先判断出口
if n ==1:
return 1
# 2.假设能够正确处理1...num的累成
temp = fact(n-1)
# 3.处理连乘
return n*temp
print(fact(5))
--->out: 120