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