python_递归原理
生活随笔
收集整理的這篇文章主要介紹了
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
輸出這樣一些有規律數據: [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
總結
以上是生活随笔為你收集整理的python_递归原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git stash简介
- 下一篇: 第三次站立会议