在撰寫程式的過程中,都有機會要重複執行一些相同的運算,但是重複撰寫好幾次同樣的運算看起來非常的沒有效率,所以在這個情況下我們通常會使用迴圈來幫我們完成,本篇就來介紹Python迴圈的使用方式,包含For-Loops、Nested Loops及while-Loops,並且說明用來控制迴圈流程的break及continue指令。
一、range()方法
在開始介紹Python迴圈之前,先來說明一個在執行迴圈時常用的range()方法,主要用來幫我們產生數列,語法如下:
range(起始值,結束值,遞增(減)值)
使用說明:
- range(20):起始值預設從0開始,所以會產生0到19的整數序列。
- range(10,20):起始值從10開始,所以會產生10到19的整數序列。
- range(10,20,3):起始值從10開始,遞增值為3,所以會產生10,13,16,19的整數序列。
二、Python For-Loops敘述
可以針對Iterable(可疊代的)物件來進行讀取,Python內建幾個常用的Iterable物件,像是String(字串)、List(串列)、Tuples(元組)、Dictionary(字典)等,往後會出文章詳細的介紹。Python for-loop的語法如下:
在語法中,in 的後方就是for-loop要讀取的目標物,這個目標物的為Iterable (可疊代的)物件,一次讀取一個元素,然後用item(自訂變數名稱)來接收每次讀取到的元素,執行區塊中的運算。注意for-loop的結尾需加上冒號( : )及區塊中的運算式要有相同的縮排,範例如下:
在範例中,for-loop的讀取目標物為一個字串,每一次讀取一個字母,並且用letter變數來接收,執行print()方法。
三、Python Nested Loops(巢狀迴圈)
簡單來說,就是迴圈中又有一層迴圈,我們來看一個範例:
這個巢狀迴圈分別有外部迴圈(Outer loop)及內部迴圈(Inner loop),程式執行的時候,會先從外部迴圈取得第一個元素 M ,接著執行內部迴圈(分別為0,1,2),直到內部迴圈執行完畢,才會回到外部迴圈取得第二個元素 i ,然後再一次的執行內部迴圈(分別為0,1,2),依此類推,直到外部迴圈的目標物已讀取完畢,整個巢狀迴圈才結束。
四、Python While-Loops敘述
是Python迴圈的另一種型式,與for-loop不一樣的地方是,while-loop是依據條件來重複執行運算,語法如下:
while之後的conditions為執行迴圈的條件式,當條件成立(True),就執行運算。同樣注意while-loop的結尾需加上冒號( : )及區塊中的運算式要有相同的縮排,範例如下:
在範例中可以看到,當number變數小於50時,就執行迴圈,直到number變數大於50時,即中斷迴圈。
五、break及continue指令
Python提供了兩個指令來控制迴圈的執行流程,分別說明如下:
- break:直接中斷迴圈,在break指令之後的運算皆不會執行,範例如下:
在範例中我們使用for-loop讀取1到9的整數數列,當迴圈讀取到數字3時,由於整除3,執行了break指令,之後的print()方法沒有執行且中斷迴圈,所以執行結果只有印出1,2。
- continue:同樣的在continue指令之後的運算不會執行,但是不會中斷迴圈,而是會繼續讀取下一個元素。
在範例中我們一樣使用for-loop讀取1到9的整數數列,當讀取到的數字能夠整除3,之後的print()方法就不會執行,但是迴圈不會中斷,繼續讀取下一個元素,所以執行結果印出沒辦法整除3的數字(1,2,4,5,7,8)。
六、小結
以上就是Python迴圈的介紹,若有其他疑問或說明不清楚的地方,歡迎與我分享!
好文轉自古耕全–Python迴圈