递归函数 什么是递归函数: 如果在一个函数的函数体内调用量该函数本身,这个函数就称为递归函数 递归的组成部分: 递归调用与递归终止条件 #递归函数既然又终止和调用条件,那么函数里面的语法肯定又if和else if 终止条件 else 否则就执行递归函数 递归的调用过程: 每递归调用一次函数,都会在栈内存分配一个栈帧 每执行完一次函数,都会释放相应的空间 递归的优缺点: 缺点: 占用内存多,效率低下 优点: 思路和代码简单
#例
def hua(n):
if n==1: #递归函数的终止条件
return 1
else: #递归函数的调用条件(什么时候终止,否则就调用)
return n*hua(n-1)
print(hua(6)) #返回值是720.
"""
运行实例:
hua(6) # 720
6*fac(5) # 6*(120)
6*(5*hua(4)) # 6*(5*24))
6*(5*(4*hua(3))) # 6*(5*(4*6))
6*(5*(4*(3*hua(2)))) # 6*(5*(4*(3*2)))
6*(5*(4*(3*(2*hua(1)))) # 6*(5*(4*(3*(2*1))))
"""
#斐波那契数列
def fib(n):
if n==1: #终止条件
return 1
elif n==2:
return 1
else: #调用条件(什么时候终止,否则就调用)
return fib(n-1)+fib(n-2)
#斐波那契数列第六位上的数字
print(fib(6)) #8
#输出这个列表的前6位上的数字
for i in range(1,7):
print(fib(i))