python邏輯控制總結——斐波那契數列

2021-01-22 07blog

生活中總是遇到一些邏輯題:比如說,老婆要求老公晚上回家買兩個饅頭,如果看到西瓜就買一個。結果老公晚上帶回來了一個饅頭。老婆問原因,答:「因為我剛才看到西瓜了。」

PyCharm

工欲善其事,必先利其器。今天,我們先介紹一款python利器,PyCharm。要測評一款IDE(Integrated Development Environment,集成開發環境)工具,是比較複製的。這裡,我們不試圖灌輸PyCharm比其它IDE更優秀的觀點。事實上,工具這種東西,基本功能都是一樣的,比如項目組織,代碼高亮,代碼提示,運行環境等。大部分的場景下,這些能力已經足夠了。與其去找一個最好的,不如找一個最敦熟悉的,最適合自己的。

PyCharm可以直接從官網下載適合自己系統的版本,安裝即可。推薦使用正版(其實挺貴)。

通過PyCharm新建一個項目,選擇Pure Python類型即可。它代表的是空白項目。選擇一個本地的文件夾作為項目根目錄。

新建項目

最終,在Project面板,你會得到一個項目,目錄結構如下:

目錄結構

先不需要去管目錄下內容,在test上右鍵,選擇新建一個python文件,命名為helloworld。內容如下:

helloworld

在文件內容窗口上右鍵,選擇運行,即可看到,控制臺彈開,裡面有剛才運行的內容。如下:

控制臺

更多的PyCharm的工具的使用,同學們可以自行百度和熟悉。

斐波那契數列

斐波那契數列在數學上,是一個特殊的數列,它的特徵如下:

1. 第一項和第二項均為1。

2. 從第三項開始,每一項均是前面兩項的和。如下:

我們嘗試在控制臺輸出一個斐波那契數列的前10項。新建一個test1.py,代碼如下:

斐波那契數列代碼1

運行結果如下:

運行結果1

python while

python中,通過while可以創建一個循環。核心邏輯是根據while後面的判斷條件進行判斷,判斷為True,則不斷重複執行循環體中的內容,直接判斷為False或手動跳出循環。

如在計算斐波那契數列時,要求輸出前10項,我們就定義了一個變量 i,初始值為1。while進入的條件為i <= 10,在循環體中,有一個對 i 的修改,即 i += 1,每次都加1。

假設沒有 i += 1,又不添加其它的內容,將會發生什麼呢?while將會陷入死循環,即一直執行循環體中的內容,無法結束。嘗試運行,你會發現控制臺不斷輸出1,並且,會感覺到電腦卡頓,這是因為循環在不斷佔用系統資源造成的。

所以,在寫代碼時,除特殊用途外,要特別注意不要寫成死循環,死循環會導致程序卡死,內存溢出等。

python中while還可以和一個else語句塊結合使用,條件判斷為True,執行循環體中的內容,條件判斷為False,執行else中的內容。

python if

python中,通過if可以形成一個條件控制。根據if後面的條件判斷,為True則執行if語句塊的內容。

if和else結合時,判斷為True,執行if語句塊,為False,執行else語句塊。如demo中,當 i < 3時,當前項即為1,否則,當前項即為前面兩項的和。

if 還可以和elif結合用,elif後面也有一個條件判斷,可以有多個elif。執行時,由上至下依次判斷,哪個條件滿足就進入對應的語句塊,都不滿足,就執行else語句塊。

python for

python中,通過for也可以創建一個循環。嚴格來說,它用於對一個序列進行遍歷。demo可以改造成for的形式,不過,需要提供一個序列用於配合。通過內置函數range來配合,是最簡單的。

range函數可以生成一個數字序列,可提供1到3個參數。

當提供1個參數n時,代表數字序列從0開始,到n-1結束。

當提供2個參數m和n時,代表數字序列從m開始,到n-1結束。

當提供3個參數m、n和s時,代表數字序列從m開始,以s為步長遞增,最大不能等於或超過n。如下:

for循環
for循環結果1
for循環結果2

基於for和range,斐波那契數列的demo可以改成如下形式:

斐波那契數列代碼2

相關焦點

  • python迭代器和生成器總結——新的斐波那契數列
    demo裡,__next__方法簡單返回了一個1,事實上,在真正使用時,這個方法可能需要更加豐富的邏輯。比如說,返回一個從1開始不斷遞增的數字序列,並且當大於10時,停止循環 。代碼如下:前面一篇文章裡我們聊到了斐波那契數列的demo,當時一個用for循環實現的代碼如下:
  • 交易玄學:斐波那契數列
    斐波那契數列。  斐波那契數列是什麼呢?  1202年,那時印刷術還沒有出現,斐波那契的書《算盤書》在義大利出版,受到當時羅馬君主的支持,而得以幸運地傳播開來。《算盤書》將阿拉伯世界的阿拉伯數字引進了當時的西方,其中一篇短文最為著名。
  • 最美的數列-斐波那契數列
    今天跟大家一起分享一下斐波那契數列。斐波那契數列簡介斐波那契數列, 就是由這位義大利著名數學家萊昂納多·斐波那契在《計算之書》中以兔子繁殖為例子而提出的數列,故又稱為「兔子數列」。斐波那契數列:1、1、2、3、5、8、13、21、34、56……這個數列的特點是從第3項開始,每一項都是前兩項的和。例如 3=2+1,5=3+2,8=5+3等。省略號後面有無數項。斐波那契數列美在哪裡呢?
  • 斐波那契數列有多神奇?
    1202 年,生於義大利比薩的數學家 萊昂納多·斐波那契 完成了他的傳世名著《算盤書》,書中對一個有趣的 「兔子繁殖問題」 進行了研究,斐波那契數列便由此而來。=上一年的兔子對數+上一年的大兔子對數=上一年的兔子對數+上上一年的兔子對數也就是說,如果把第 n 年的兔子對數記為 Fn,則:由於這個數列是由 斐波那契 首先加以研究的,後人就將其稱為 斐波那契數列。
  • 雲計算開發學習實例:Python3 斐波那契數列
    原標題:雲計算開發學習實例:Python3 斐波那契數列   斐波那契數列指的是這樣一個數列 0, 1, 1, 2, 3, 5, 8, 13,特別指出:第0項是
  • 斐波那契數列
    斐波那契數列的增長速度非常快,像這個數:4109266378488062431228061757602275200488546350691404731331209059476699865525985814512330794573159713192993537023560937664480427471312780415869653296
  • 奇妙的斐波那契數列
    義大利的數學家列昂那多·斐波那契在1202年研究兔子產崽問題時發現了此數列。斐波那契在《計算之書》中提出了一個有趣的兔子問題:假設一對初生兔子要一個月才到成熟期,而一對成熟兔子每月會生一對兔子,那麼,由一對小兔子開始,12個月後會有多少對兔子呢?兔子繁殖的過程可以通過一棵「家族樹」來表示,如圖所示。
  • 斐波那契數列與自然
    斐波那契數列與自然   斐波那契數列在自然界中的出現是如此地頻繁,人們深信這不是偶然的..葉子在一個循回中旋轉的圈數也是斐波那契數.在一個循回中葉子數與葉子旋轉圈數的比稱為葉序(源自希臘詞,意即葉子的排列)比.多數的葉序比呈現為斐波那契數的比.
  • python實戰14遞歸算法實現斐波那契數列(BAT面試題)
    斐波那契數列簡介斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家萊昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣一個數列:0、1、1、2、3
  • 小學生也可以寫出的,複雜數列-斐波那契數列
    有一個數列與黃金分割比就有著不可名狀的關係,而且它的特性非常的多,關鍵這個數列還非常簡單,小學生都可以寫出來。今天我們就來著重講一下這個數列,斐波那契數列的4個特性。1.數列前兩項之和等於第三項如果設F(n)為該數列的第n項(n∈N*),那麼這句話可以寫成如下形式::F(n)=F(n-1)+F(n-2)以上就是斐波那契數列的官方定義。其實只要把數列擺出來,我們就可以很明確的看到特性了。1,1,2,3,5,8,13,21,34...
  • 斐波那契數列實戰解析
    斐波那契數列在實際操作過程中有兩個重要意義:第一個實戰意義在於數列本身。使用斐波那契數列時可以由市場中某個重要的階段變盤點向未來市場趨勢進行推演,到達時間窗口時市場發生方向變化的概率較大。案例如圖,近期上證指數的實時走勢,就是很經典的斐波那契數列周期第二個實戰意義在於本數列的衍生數字是市場中縱向時間周期計算未來市場變盤時間的理論基礎。
  • Python 揭秘斐波那契定律,如何幫助碼農分析股票?|技術頭條
    作者 | 元宵大師責編 | 胡巍巍剖析斐波那契數列對於斐波那契數列相信大家並不陌生,它指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、55、89、144、233…………這個數列究竟蘊含著什麼秘密呢?我們從以下三個問題展開對斐波那契數列的剖析:(1) 斐波那契數列是怎麼由來的?
  • 王者技術之斐波那契數列
    「斐波那契數列(Fibonacci)」的發明者,是義大利數學家列昂納多·斐波那契(Leonardo
  • Python 揭秘斐波那契定律,如何幫助碼農分析股票?| 技術頭條
    我們從以下三個問題展開對斐波那契數列的剖析:(1) 斐波那契數列是怎麼由來的?斐波那契數列是由義大利中世紀數學家斐波那契(Fibonacci,公元1175-1240)在他1202年著作的《算盤書》(Liber Abaci)中以兔子繁殖為例子所引出的。
  • 斐波那契數列在自然界中如何表達
    這個數列被稱為斐波那契數列。數字之間的比率(1.618034)經常被稱為黃金比率或黃金數字。乍一看,斐波那契的實驗似乎提供了超出世界範圍的投機性兔子繁殖。但是這個序列經常出現在自然世界中,這一事實幾個世紀以來一直吸引著科學家。這些迷人的數字是如何在自然界中表達的呢?
  • 斐波那契數列——隱藏在自然界的數學美
    即為「斐波那契數列(Fibonacci sequence)」1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233……斐波那契數列中的任一個數,都叫斐波那契數斐波那契數是大自然的一個基本模式只要我們認真觀察斐波那契數存在於自然界的萬物中
  • 生命曲線與神聖的斐波那契數列
    同樣讓他感到驚訝的是,最讓世人津津樂道是以他命名的這個斐波那契數列:0,1,1,2,3,5,8,13……,而並非本人更偉大的數學成就——將阿拉伯數字和乘數的位值表示法系統引入了歐洲。斐波那契為這些商人編寫了《計算之書》,其中就涉及到大量的實際問題,並舉例說明,與笨拙的羅馬數字相比,這套新的數字系統可以多麼簡單、高效地進行商業和數學計算。透過斐波那契的這本書將十進位數字影響傳播開來是他最偉大的數學成就。然而,本人卻是因為《計算之書》中列舉的斐波那契數列被世人所熟知的。
  • 利用斐波那契數列實現英裡和公裡轉換
    斐波那契數列還可以這樣玩,有點意思。
  • 斐波那契數列與K線 ——(一)基本要素
    斐波那契數列與K線 ——(一)基本要素斐波那契周期:1 1 2 3 5 8 13 21 34 55 89 144 233 377…
  • 求職乾貨:再也不怕面試官問斐波那契數列了! - CSDN
    斐波那契數列的計算表達式很簡單:F(n) = n; n = 0,1F(n) = F(n-1) + F(n-2),n >= 2;因此,我們能很快根據表達式寫出遞歸版的代碼:/*fibo.c*/#include<stdio.h>#include<stdlib.h>/*求斐波那契數列遞歸版*/unsignedlongfibo