Python递归函数的定义和几个小例子
2022/4/20 1:14:14
本文主要是介绍Python递归函数的定义和几个小例子,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
递归函数
(1)什么是递归函数?
我们都知道,一个函数可以调用其他函数。如果这个函数在内部调用它自己,那么这个函数就叫递归函数。
(2)递归函数的作用
举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * … * n
#不使用递归的方法: n=4 #求4的阶乘 result=1 i=1 while i<=4: result=result*i i+=1 print(result) #使用递归的方法: def test1(n):#定义函数来计算数字n的阶乘 if n==1: return 1 return n * test1(n-1) print(test1(5)) #1在函数的内部调用自己本身 #2递归函数本质是一个方法的循环调用,注意:有可能出现死循环 #3一定要定义递归的边界(什么时候退出循环)
输出结果为:
24 120 [Finished in 0.4s]
从上面两中方法的对比可以看出,递归函数的作用和循环的方法效果一样,即递归函数本质上是一个方法的循环调用,注意:有可能会出现死循环。因此,使用递归函数时,一定要定义递归的边界(即什么时候退出循环)。
递归函数的另一个案例是斐波纳契数列。
斐波纳契数列:1,1,2,3,5,8,13。。。(该数列中,有n个数字,从第三个数字开始:数值 =前一个数字 + 前面一个数字)
即,n=(n-2)+(n-1)
def get_num(n):#获取斐波拉契数列中第n个数字的值 if n==1 or n==2: return 1 return get_num(n-1) + get_num(n-2) #把获取的斐波拉契数字存放到列表中 nums=[] for i in range(1,21): nums.append(get_num(i))#get_num获得一个斐波拉契数字 print(nums)
输出结果为:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765] [Finished in 0.4s]
以上两个案例是递归函数的经典案例,需要记住其使用方法。注意:在实际使用中,递归函数由于消耗时间比较长(相比for循环和while循环),所以很少使用。
这篇关于Python递归函数的定义和几个小例子的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践