python_递归原理

需要:
  输出这样一些有规律数据: [0,1,1,2,3,5,8,13,21,34.......]
看上面需要好像有一些规律,没错,就是大家熟悉的婓那波契数列,n=(n-1)+(n-2)如13=8+5;

运用递归原理得:
def func(arg1,arg2):
if arg1 == 0:
print arg1,arg2
arg3 = arg1 + arg2
print arg3
if arg3 > 2046:
return ''
func(arg2,arg3)

func(0,1)
该函数在函数里再调用函数自身从而达到递归。

注意:在返回时当前的返回会停止函数操作,然而返回值应该是退回到上次调用,因为发起函数是底下函数操作,so,应该上次函数进行返回。
如:
  
 1 def func(arg1,arg2):
 2     if arg1 == 0:
 3         pass
 4     arg3 = arg1 + arg2
 5 
 6     if arg3 > 2046:
 7         return arg3
 8     return func(arg2,arg3)
 9 
10 print func(0,1)

结果:2584 返回了arg3
原文地址:https://www.cnblogs.com/fengzaoye/p/5754025.html