Python基礎都學會了嗎?恭喜你朝專業工程師又進一步了!本篇是進階教學:控制結構篇10.for迴圈
看這一篇之前,建議先看這一篇「Python控制結構5.while 迴圈」複習 while 迴圈。
Python 中,若我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都各執行一次。
while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。這次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。
以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:
因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用range數列來訂定起始值、結束條件與調整方法,是不是很精簡方便的?Python 的 range 函數的詳細用法請見這一篇。
下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:
參考連結:
Python進階教學:控制結構篇8.函數
Python進階教學:控制結構篇9.數列生成
Python中級學堂:控制結構篇11.實作簡單的計算機
AI將衝擊你我的未來?Python竟成人人要會的技能?(上)
AI將衝擊你我的未來?Python竟成人人要會的技能?(中)
AI將衝擊你我的未來?Python竟成人人要會的技能?(下)
暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~
Python 中,若我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都各執行一次。
for 迴圈 vs. while 迴圈
先前在Python教學中我們曾經介紹過的 while 迴圈用法與 if 條件判斷式相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。這次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。
以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:
count=0 while count <= 5: print(count) count = count + 1上述範例結果為:
0 1 2 3 4 5上個範例,若我們把第二行的「count <= 5」抽掉,換成一個「合乎常理」的條件(例如 count = 0),這個 loop 就會「0,1,2,3,4,5,6,7⋯⋯」永無止盡的重複「+1」的動作。同個範例,若使用 for 迴圈,則在第一行就可以搭配 range數列,定義「終止值」。如下例:
for count in range(0,6,1): print(count)上述例子結果為:
0 1 2 3 4 5有沒有發現,原本使用 while loop 需要 4 行的 coding,使用 for loop 只要兩行?
因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用range數列來訂定起始值、結束條件與調整方法,是不是很精簡方便的?Python 的 range 函數的詳細用法請見這一篇。
下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"] for bandname in the_BIG4: print(bandname+" is a thrash metal band.")上述例子結果為:
Megadeth is a thrash metal band. Metallica is a thrash metal band. Anthrax is a thrash metal band. Slayer is a thrash metal band.這種針對某一集合中的所有項目(例如:List串列之中的所有物件),都各執行一次例子,若用 while 迴圈來表示則需要:1、套用到 counter 「計數器」變數(計數器的數值是跟著索引跑的,所以設定起始值為「counter = 0」。串列的索引編號均是從零開始,詳細請看這篇)。;2、調整值為多加一次,故把計數器變數設為「counter = counter + 1」;3、讓迴圈結束的條件為當計數器把串列的東西全都執行結束時,因此把計數器的值設定為「最大的索引數」, 變成:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"] counter = 0 max_index = len(the_BIG4)-1 while counter <= max_index: bandname = the_BIG4[counter] print(bandname + " is a thrash metal band.") counter = counter + 1比起來,for 迴圈自帶計數的特性,真的簡化了 Python 程式碼的寫法。所以遇到有次數限制的迴圈時,不妨使用 for 迴圈吧!
參考連結:
Python進階教學:控制結構篇8.函數
Python進階教學:控制結構篇9.數列生成
Python中級學堂:控制結構篇11.實作簡單的計算機
AI將衝擊你我的未來?Python竟成人人要會的技能?(上)
AI將衝擊你我的未來?Python竟成人人要會的技能?(中)
AI將衝擊你我的未來?Python竟成人人要會的技能?(下)
暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~