递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。
简单举例递归函数:
1 def dg(number): 2 if number/2 > 1: 3 print(number/2) 4 dg(number/2) 5 dg(10) 6 7 8 5.0 9 2.5 10 1.25
斐波那契数列:第三位是前两位的相加
1 def func(arg1, arg2,stop): 2 if arg1 == 0: 3 print(arg1, arg2) 4 arg3 = arg1 + arg2 5 print(arg3) 6 if arg3 > stop : 7 return "bingo" 8 func(arg2, arg3,stop) 9 10 func(0, 1,300) 11 12 13 0 1 14 1 15 2 16 3 17 5 18 8 19 13 20 21 21 34 22 55 23 89 24 144 25 233 26 377
递归函数常用于检索大量数据,比如检索一个拥有300万个数的列表,从中查找某个数是否存在,如果用for遍历,会严重占用计算机计算能力,那么我们可以通过递归函数来减少搜索量。