迴圈—for loop and while loop

在學會了Python中基本的型態以及資料結構後,今天我們要進入迴圈囉!

迴圈是一個很方便且具有效率的功能,可以用程式幫我們自動重複做相同的事情,以節省我們寶貴的時間。

今天,我們將介紹兩種基本的迴圈,for 迴圈以及while迴圈。兩者主要的差異在於,for迴圈我們給定起始值,程式會幫我們在起始值之間重複相同的動作。而while迴圈則是給定某個條件,當滿足這個條件時,程式會幫我們重複相同的動作,直到條件失效為止。

讓我們一起來看些範例,一起學習一些使用方法吧!

(一) for loop

在for 迴圈中,我們給定起始值,後面加上冒號,第二行輸入我們想要做的事情,就可以囉!

重點小提示:縮排在Python中是非常重要的,所以第二行開始一定要記得縮排唷,就代表這些動作是要在這個for迴圈內的。

1.建立FOR LOOP

首先,我們介紹一個常用的python內建函數range(a,b,c)。a代表的是起始值(包含),b代表的是結尾值(不包含),c代表的是間格。若我們沒給定c,則間格預設為1。若我們沒給定a,則預設從0開始。

2.FOR LOOP WITH LIST

結合先前我們所學的list以及string,一種常用的方法就是我們可以用for迴圈對list裡面每一個元素做同樣的事情!

小作業: 還記得tuple嗎? 試試看用for迴圈對tuple做同樣的事情吧!

3.雙層for loop

迴圈可以好多層,這讓資料的維度可以無限擴增。不過要注意的是,愈多層迴圈,會讓程式跑愈久,愈沒有效率唷!

現在,我們來看一個之前成員名稱裡包含會員編號以及性別的例子。在一層迴圈中,我們僅得到成員的名單,而在雙層迴圈中,我們可以列印出會員標號以及性別。

4. 一行寫for loop

接下來 我們要分享更優雅的迴圈寫法,只要一行就可以完成我們上面分享的範例囉。

很簡單很方便吧!

接下來,讓我們來談談While loop吧!

(二) while loop

有別於for loop,while loop不是給定起始值或資料列,而是給定一個條件。當滿足這個條件時,程式就會幫我們重複做同樣的事情,直到這個條件消失為止。

跟fro loop一樣的是,在寫程式時,我們也要記得縮排唷,縮排的部分,就表示是在這個迴圈裡面所做的事情。

在while迴圈中,很重要的一點是,條件相關的變數一定要會變動。以這個例子來說,條件變數為x,當我們每列印一次,就會讓x增加1,所以當x增加到不再滿足x<10這個條件時,這個迴圈就會自動停止。然而,若我們少寫了x=x+1這個程式碼,則x會永遠等於1,這個迴圈也會一直執行,永不停止。當然啦,最後就會造成電腦當機!如果不小心發生這樣的事情,也別擔心,按”Ctrl”+”C”強制停止就可以了。

以下兩種為永不停止的while迴圈範例:

第一種為我們剛剛所討論的結果。
第二種則是因為雖然有寫x=x+1,然而並未縮排,可見是在迴圈外面。所以,程式會等到執行完迴圈後,才往下執行。然而,回圈內的變數不會動,如同上例,故會得到相同的結果。(迴圈無法停止)

現在,相信大家已經對迴圈有了基本的認識。如果有時間,希望大家可以試試看今天的小作業唷! 明天我們除了會公布解答,更會帶大家進入邏輯判斷的世界,並結合今天的for loop 與while loop唷!

Share

One thought on “迴圈—for loop and while loop

  1. I needed to draft you one little bit of observation so as to say thank you once again for those incredible opinions you’ve documented here. It is quite pretty generous of people like you to deliver freely exactly what a number of people could possibly have made available as an e book to end up making some cash for themselves, most importantly given that you could possibly have done it if you ever decided. These inspiring ideas also served like the fantastic way to comprehend other individuals have similar eagerness like my own to know great deal more on the subject of this issue. I’m sure there are many more fun occasions in the future for individuals who look into your blog post.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *