Python學習日記 遞迴函式

2021-10-18 07:39:16 字數 719 閱讀 4379

我們在中學階段就遇到過數列通項問題,通項科an可寫作:

an=sn-sn-1(sn表示前n項的和)

移項後,可表示為:

sn=sn-1+an

在這裡,以乙個數列的前3項為例:

s3=s2+a3

s2=s1+a2

即:s3=s1+a2+a3

那麼,任何sn都可以看成s1+引數項。引數項已知,知道s1就可求sn。s1就是第一項,我們把具體問題中第一項的值賦給s1即可。

def

get_sum

(n):

if n ==1:

return

1return get_sum(n -1)

+ n

在這個問題中,第一項的值明顯為1,因此n=1時,返回1

當然,也可寫n=0,返回0

def

product

(n):

if n ==0:

return

1 result = product(n -1)

* n return result

求階乘問題中,第一項也為1,但是,這裡n=0時,不可return 0 了。因為0的階乘仍然是1,所以n=0,仍然rerurn 1。

在遞迴函式中,要跳出這個套娃過程,應使用return語句,而不是break語句,因為break用以跳出while、for迴圈。

python學習日記 匿名函式)

匿名函式 為了解決那些功能很簡單的需求而設計的一句話函式。python 使用 lambda 來建立匿名函式。所謂匿名,意即不再使用 def 語句這樣標準的形式定義乙個函式。1 lambda 只是乙個表示式,函式體比 def 簡單很多。2lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lamb...

python學習 遞迴函式

漢諾塔 的移動也可以看做是遞迴函式。我們對柱子編號為a,b,c,將所有圓盤從a移到c可以描述為 如果a只有乙個圓盤,可以直接移動到c 如果a有n個圓盤,可以看成a有1個圓盤 底盤 n 1 個圓盤,首先需要把 n 1 個圓盤移動到 b,然後,將 a的最後乙個圓盤移動到c,再將b的 n 1 個圓盤移動到...

python3學習日記 函式

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。定義乙個函式 defsay hi name print hi name print是python的乙個內建函式函式的引數必需引數 必需引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。...