python函式之遞迴函式

2021-10-24 01:15:36 字數 2450 閱讀 9048

在計算機程式設計裡,遞迴指的是乙個過程:函式不斷引用自身,直到引用的物件已知。

1、自己呼叫自己

2、必須有乙個明確的結束條件

優點:

缺點:

計算n的階乘

def

factorial

(n):

if n==1:

return

1 fac=n*factorial(n-1)

return fac

n=

5print

('{}的階乘是{}'

.format

(n,factorial(n)))

5的階乘是120

計算自然數1至n的和

def

summation

(n):

if n==1:

return

1else

:sum

=n+summation(n-1)

return

sum

n=

5print

('1到{}的和是{}'

.format

(n,summation(n)))

1到5的和是15

3.求斐波那契數列第n位的數

(指的是這樣乙個數列:0、1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:f(1)=1,f(2)=1, f(n)=f(n - 1)+f(n - 2)。這個數列從第3項開始,每一項都等於前兩項之和。)

def

fibonacci

(n):

if n==

0or n==1:

return n

else

: result=fibonacci(n-2)

+fibonacci(n-1)

return result

n=

9print

('斐波那契數列第{}項是{}'

.format

(n,fibonacci(n)

))

斐波那契數列第9項是34

4.模擬樹形結構遍歷資料夾中的所有檔案

#輸入path是乙個路徑,目的:檢視裡面的所有檔案(如果有資料夾要開啟資料夾接著檢視,直到找到所有檔案)

import os

deffindfile

(path)

: path_file=os.listdir(path)

#獲取路徑path裡的所有檔案和資料夾

for fileitem in path_file:

#遍歷path裡的所有檔案或者資料夾

full_path=os.path.join(path,fileitem)

#檔案或資料夾的完整路徑

if os.path.isdir(full_path)

:#判斷是不是資料夾

findfile(full_path)

#是資料夾 遞迴

else

:print

(fileitem)

#否則輸出檔名

else

:return

print

(findfile(

'f:\\社團註冊材料'))

2017--

-2018學年第一學期社團註冊要求.doc

上學年財務總結報告.doc

主要活動介紹.doc

女子協會章程.doc

電信女子協會學期總結.doc

電信女子協會學期計畫.doc

社團活動統計表.doc

社團登記表.doc

社團負責人審批表.doc

第一學期社團註冊要求.doc

獲獎情況.doc

財務審批表.doc

主要活動介紹.doc

女子協會章程.doc

禮儀部11月份工作計畫.doc

禮儀部十月份工作總結.doc

社團註冊材料.

zip社團活動統計表.doc

社團登記表.doc

社團負責人審批表.doc

獲獎情況.doc

財務審批表.doc

這是路徑下的所有檔案,其中包括兩個資料夾

Python之遞迴函式

如果乙個函式在函式內部呼叫函式本身,那麼這個函式就是遞迴函式。例如用遞迴函式計算階乘。deffact n if n 1 return 1.return n fact n 1 fact 1 1 fact 7 5040 fact 999 traceback most recent call last f...

python之函式遞迴

函式的遞迴 函式呼叫自身的程式設計技巧稱為遞迴 遞迴函式的特點 特點 特點 函式內部的 是相同的,只是針對引數不同,處理的結果不同當引數滿足乙個條件時,函式不再執行 示例 def sum numbers num print num 遞迴的出口很重要,否則會出現死迴圈 遞迴案例 計算數字累加 需求 定...

python函式之遞迴

1.程式語言中,函式func type a,直接或間接呼叫函式本身,則該函式稱為遞迴函式。2.在數學上,關於遞迴函式的定義如下 對於某一函式f x 其定義域是集合a,那麼若對於a集合中的某乙個值x0,其函式值f x0 由f f x0 決定,那麼就稱f x 為遞迴函式。3.一種計算過程,如果其中每一步...