python基礎之遞歸函數

在這裡插入圖片描述

# 遞歸滿足的條件
# 1.自己調用自己
# 2.必須有一個明確的結束條件
# 優點:邏輯簡單\定義簡單
# 缺點:防止內存消耗過多,容易導致棧溢出,內存資源緊張,甚至內存泄漏事件發生
# 求階乘
# 循環的方式去實現
def jiecheng(n):
    result=1
    for item in range(1,n+1):
        result*=item
        pass
    return result #普通函數必須指定返回值
print('4的階乘為{}'.format(jiecheng(4)))

在這裡插入圖片描述

def diguijc(n):
    '''
    遞歸函數
     :param n:階乘參數
    :return:
    '''
    if n==1:
        return 1
    else:
        return n*diguijc(n-1)
    pass
 # 遞歸調用
print('4的階乘為{}'.format(diguijc(4)))

在這裡插入圖片描述

在這裡插入圖片描述

# 模擬實現樹形結構的遍歷
import os #引入文件操作模塊
def findFile(file_path):
    listRs=os.listdir(file_path) # 得到該路徑下所有和文件夾
    for fileitem in listRs:
        full_path=os.path.join(file_path,fileitem) #組合成為完整的文件路徑
        if os.path.isdir(full_path): #判斷是否是文件夾
            file_path(full_path) #如果是一個文件夾,再次遞歸
            pass
        else:
            print(fileitem)
            pass
        pass
    else:
        return
    pass
# 先給一個路徑
findFile('C:\\Users\\LXQ\\Desktop')

在這裡插入圖片描述

在這裡插入圖片描述

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: