(記錄)python篇:六_ 函數2
阿新 • • 發佈:2017-09-29
python、遞歸函數
#遞歸函數
#函數內部,一個函數可以調用自身本身,這個函數就是遞歸函數。
def num(x): #第一步 return num_a(n,1) #第二部 def num_a(a,b): #與第二部對應,如果此時的num_a與上一步定義的函數不對應,則代碼報錯。 if a==1: #(最後一部判斷)由於a==3,所以a==1不成立,直到a==1時才返回b,循環才結束。 return b return num_a(a-1,a*b)#此時循環結束,但是判斷裏的循環未結束。
#x等於3時
#num_a(3,1)
#num_a(2,3)
#num_a(1,6)
#返回num_a(a-1,a*b)值與上面對於num_a(a,b),a在不斷減1,而b得出定義表達式的a*b相乘,直到a==1時,判斷成立,return返回結束。
#所以答案為num_a(1,6),a==1,b==6
#此遞歸函數也和循環是等價的,但是他不依靠循環語句,只是本身咋不斷調用函數,因此會發生棧溢出的問題。
學習內容來自廖俊峰的官方網站!
ps:本人python不是抄襲,而是學習篇>>>寫的是本人學習的筆記,記錄下來方便本人以後參考。
本文出自 “麻花的博客” 博客,請務必保留此出處http://mahua.blog.51cto.com/11572858/1969786
(記錄)python篇:六_ 函數2