第9章 函数-9.8 递归函数
递归函数是一种特殊的函数,其会在函数内部通过调用自身来解决问题。
递归函数可以用来解决许多类型的问题,例如计算阶乘、遍历树结构、求解斐波那契数列等。需要注意的是,在使用递归时,重要的是要确保递归有明确的终止条件,以避免无限递归造成栈溢出错误。
递归函数的优点就是定义简单,且逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但是循环的逻辑不如递归清晰。
下面就通过使用递归函数的方式和普通循环的方式创建起始两项元素为0和1的斐波那契数列。示例代码如下:
# 资源包\Code\chapter9\9.8\0931.py # 递归函数方式 def fibonacci(len): # 计算斐波那契数列每一项的值 def fibonacciNum(num): if num == 0: return 0 elif num == 1: return 1 else: return fibonacciNum(num - 1) + fibonacciNum(num - 2) # 将斐波那契数列每一项的值组合成列表 return [fibonacciNum(var) for var in range(len)] # 打印输出指定项数的斐波那契数列 print(fibonacci(6)) # 普通循环方式 def fibonacci(num): if num == 0: return [] elif num == 1: return [0] # 初始化斐波那契数列列表 fs = [0, 1] # 将斐波那契数列每一项的值添加至列表中 while len(fs) < num: fs.append(fs[-1] + fs[-2]) return fs # 打印输出指定项数的斐波那契数列 print(fibonacci(6))