生活中總是遇到一些邏輯題:比如說,老婆要求老公晚上回家買兩個饅頭,如果看到西瓜就買一個。結果老公晚上帶回來了一個饅頭。老婆問原因,答:「因為我剛才看到西瓜了。」
PyCharm
工欲善其事,必先利其器。今天,我們先介紹一款python利器,PyCharm。要測評一款IDE(Integrated Development Environment,集成開發環境)工具,是比較複製的。這裡,我們不試圖灌輸PyCharm比其它IDE更優秀的觀點。事實上,工具這種東西,基本功能都是一樣的,比如項目組織,代碼高亮,代碼提示,運行環境等。大部分的場景下,這些能力已經足夠了。與其去找一個最好的,不如找一個最敦熟悉的,最適合自己的。
PyCharm可以直接從官網下載適合自己系統的版本,安裝即可。推薦使用正版(其實挺貴)。
通過PyCharm新建一個項目,選擇Pure Python類型即可。它代表的是空白項目。選擇一個本地的文件夾作為項目根目錄。
最終,在Project面板,你會得到一個項目,目錄結構如下:
先不需要去管目錄下內容,在test上右鍵,選擇新建一個python文件,命名為helloworld。內容如下:
在文件內容窗口上右鍵,選擇運行,即可看到,控制臺彈開,裡面有剛才運行的內容。如下:
更多的PyCharm的工具的使用,同學們可以自行百度和熟悉。
斐波那契數列
斐波那契數列在數學上,是一個特殊的數列,它的特徵如下:
1. 第一項和第二項均為1。
2. 從第三項開始,每一項均是前面兩項的和。如下:
我們嘗試在控制臺輸出一個斐波那契數列的前10項。新建一個test1.py,代碼如下:
運行結果如下:
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和range,斐波那契數列的demo可以改成如下形式: