日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中的函数递归

發布時間:2024/9/30 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中的函数递归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數遞歸

概述?

1.如果一個函數調用自身,該函數被稱為遞歸函數,這種現象被稱為遞歸調用

2.遞歸包含了一種隱式的循環,它會重復執行某段代碼,但是這種重復無須條件進行控制

? ?使用遞歸解決問題的思路:

? ? ? ? ? ①? 找到一個臨界條件【能夠讓遞歸停止下來】

? ? ? ? ? ②?找到兩次隱式循環之間的關系【規律】

3.很經典的斐波那契數列

# 報一個數,輸出在斐波那契數列中對應的數 # 如: 報10(即第十個數字),輸出55 """ 斐波那契數列1 1 2 3 5 8 13 21 34 55 .... """def f(n):if n == 1 or n == 2:return 1else:return f(n - 1) + f(n - 2)r = f(10) # 第十個位置上的斐波那契數列的數 print(r)

可以根據程序,一步一步的分析下去,一個一個數字往進帶,就會發下函數一直再進行遞歸,一直到最后遞歸完成return相對應的值。

4.注意:在書寫遞歸函數時,函數必須有返回值【下一次的操作可能需要用到上一次運算的結果】

5.??用遞歸實現求某個數的累加整數和

# 用遞歸實現求某個數的累加整數和 def add_1(n):if n == 1:return 1else:return add_1(n - 1) + nresult_1 = add_1(100) print(result_1)

總結:?在實際的開發中,盡量避免使用遞歸,但是,遞歸在使用的過程中代碼簡單,

? ? ? ? ?缺點:過深的遞歸調用會導致棧溢出?

6.?同樣??用遞歸實現求某個數的階乘

# 用遞歸實現求某個數的階乘 def mul_1(n):if n == 1:return 1else:return mul_1(n - 1) * nresult_2 = mul_1(5) print(result_2)

?

用Python遞歸,?封裝函數,獲取一個指定目錄下的所有的內容,如果是文件,則直接打印,如果是文件夾,則繼續查找

# 需求:封裝函數,獲取一個指定目錄下的所有的內容,如果是文件,則直接打印,如果是文件夾,則繼續查找 import osdef getAllFile(path):if not os.path.exists(path):print("路徑不存在,無法操作")returnif os.path.isfile(path):print("路徑是一個文件:%s" % path)returnfilelist = os.listdir(path)# 遍歷for fileName in filelist:# 拼接路徑filePath = os.path.join(path, fileName)# 判斷是否是文件if os.path.isdir(filePath):# 目錄,繼續訪問print("目錄: %s" % filePath)# 使用遞歸getAllFile(filePath)else:print("文件 : %s " % filePath)if __name__ == '__main__':path = "E:\python3_code" # 指定目錄getAllFile(path)

?

總結

以上是生活随笔為你收集整理的Python中的函数递归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。