云計算開發(fā)學(xué)習(xí)筆記:Python3斐波納契數(shù)列
在前面的教程中我們已經(jīng)學(xué)習(xí)了一些 Python3 的基本語法知識,下面我們嘗試來寫一個斐波納契數(shù)列。
其中代碼 a, b = b, a+b 的計算方式為先計算右邊表達(dá)式,然后同時賦值給左邊,等價于:
執(zhí)行以上程序,輸出結(jié)果為:
這個例子介紹了幾個新特征。
第一行包含了一個復(fù)合賦值:變量 a 和 b 同時得到新值 0 和 1。最后一行再次使用了同樣的方法,可以看到,右邊的表達(dá)式會在賦值變動之前執(zhí)行。右邊表達(dá)式的執(zhí)行順序是從左往右的。
輸出變量值:
end 關(guān)鍵字
關(guān)鍵字end可以用于將結(jié)果輸出到同一行,或者在輸出的末尾添加不同的字符,實例如下:
執(zhí)行以上程序,輸出結(jié)果為:
遞歸方式
下面使用遞歸方式求斐波納契數(shù)列
其實遞歸就是函數(shù)內(nèi)部調(diào)用自身。
使用 print(fab(num)) #num 是一個數(shù)字,可用遞歸方式求輸入數(shù)字的斐波納契結(jié)果:
遞歸方式在很大程度上犧牲了空間換取了可讀性。每次調(diào)用遞歸函數(shù)的時候都會創(chuàng)建一個函數(shù)棧,如果遞歸深度過大,則會造成溢出狀況。而使用a,b = b,a+b 方法求斐波那契數(shù)列,占用空間少,來回只有兩個變量的空間占用,很方便。