1. 程式人生 > >(記錄)python篇:六_ 函數2

(記錄)python篇:六_ 函數2

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