首頁 > 繪畫

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

作者:由 DFBoy 發表于 繪畫日期:2021-11-29

斐波那契在哪兒

Hello,大家好,這裡是隨時隨地準備死磕操作的DFBoy。

今天我們要講述的操作是,在不採用遞迴的情況下使用python獲取斐波那契數列前n項。

01

場景需求描述

本次操作同樣是python入門學者的練手操作。

按照最初的設計,斐波那契數列的最好途徑是採用遞迴函式獲取斐波那契數列。

但渴望進步的程式設計師絕對不能止步於此,所以本次的操作採取了一個限制,那就是在不使用遞迴函式的情況下獲取斐波那契數列。

但不使用遞迴不代表不使用遞迴函式的思維——自我疊加代進!

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

02

程式碼構思

上次講述使用遞迴函式獲取斐波那契數列前n項的時候曾經說過,獲取斐波那契數列還可以使用列表以及字典的方式獲取。

因為列表和字典這兩種資料屬於容器型資料,完全可以採用自我疊加的方式獲取斐波那契數列。

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

03

完整程式碼

使用列表的斐波那契數列前n項函式定義

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

使用字典方式的斐波那契數列第n項

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

04

程式碼講解

因為這兩個程式碼都是採用函式的方式進行操作的,所以就去掉頭尾,只講述核心操作的部分。

首先是

列表方式的講解

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

先是建立一個列表,內含斐波那契數列最開頭兩項,之後採用for迴圈,使用列表追加的方式新增斐波那契數列的項,新增的內容為相對應列表元素的加和,這樣就實現了斐波那契數列項的特性,前兩項加和為第三項。

之後是

字典方式的講解

斐波那契數列在python裡不僅只能用遞迴函式方式,還有列表和字典

字典方式就稍微複雜一點,雖然主體是字典方式,但因為字典的相關特性,採用了if判斷結構,而且大體框架類似遞迴函式。

為此,朋友們可以回去重新看一下采用遞迴方式獲取斐波那契數列前n項的內容,對照著理解。

在Python使用遞迴函式的方式獲取斐波那契數列,你會了麼

05

操作總結

從程式碼內容來看,使用列表和字典方式獲取斐波那契數列前n項在程式碼數量上和使用遞迴函式方式相差無幾。

但從中我們可以獲取這樣一個知識點——遞迴函式操作的內容可以使用列表這類元素可變換的容器型別資料進行替換,以此提高程式碼執行的效率。