91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3中遞歸函數的示例分析

發布時間:2021-10-25 19:03:40 來源:億速云 閱讀:124 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關Python3中遞歸函數的示例分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Python3之遞歸函數簡單示例

概述

遞歸函數即直接或間接調用自身的函數,且遞歸過程中必須有一個明確的遞歸結束條件,稱為遞歸出口。遞歸極其強大一點就是能夠遍歷任意的,不可預知的程序的結構,比如遍歷復雜的嵌套列表。

遞歸求和

我們可以利用遞歸函數實現一個Python內置函數sum()的遞歸版。

# 遞歸
def d_sum(L):
 if not L:
 return 0
 else:
 return L[0] + d_sum(L[1:])
sum_l = d_sum(range(10))
print(sum_l)

示例結果

45

該遞歸函數怎么實現列表元素相加的呢? 我們知道函數是有本地作用域的,對函數調用的每一個打開的時候,在運行時調用堆棧上都有自己的一個本地作用域的副本,即L在每個層級都是不同的,比如我們可以通過每次調用時添加一個打印語句,更加直觀展示每個層級L的情況

# 遞歸
def d_sum(L):
 # 打印該層級L
 print(L)
 if not L:
 return 0
 else:
 return L[0] + d_sum(L[1:])
# 構建 0-10 數字元素列表
L = [i for i in range(10)]
sum_l = d_sum(L)
print(sum_l)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[6, 7, 8, 9]
[7, 8, 9]
[8, 9]
[9]
[]
45

處理任意結構

比如我們可以利用遞歸計算一個嵌套的子列表結構中所有數字的總和

def dd_sum(L):
 tot = 0
 for x in L:
 if not isinstance(x, list):
 tot += x
 else:
 tot += dd_sum(x)
 return tot
# 嵌套列表
L = [1,[2,3],[4,[5,6,7],8],9]
sum_l = dd_sum(L)
print(sum_l)

示例結果:

45

這種處理方式看似復雜,我們可能更多會利用循環語句替代,但是使用遞歸函數邏輯簡單清晰,這是使用的一大優點。關于Python3中遞歸函數的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黔江区| 苏尼特左旗| 宁化县| 灵璧县| 三门峡市| 资中县| 彭山县| 灵寿县| 习水县| 鹿泉市| 南溪县| 彰化市| 泽库县| 乳山市| 浦北县| 武安市| 汶上县| 九龙县| 鄯善县| 广平县| 宜丰县| 昌吉市| 河津市| 新闻| 涿鹿县| 卢氏县| 东明县| 福清市| 台北县| 南充市| 丹阳市| 和田市| 南阳市| 鸡泽县| 伊金霍洛旗| 宜城市| 榆中县| 司法| 张家川| 青田县| 罗甸县|