我們在中學階段就遇到過數列通項問題,通項科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的乙個內建函式函式的引數必需引數 必需引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。...