在談for與while前,先說明一下迴圈是什麼。
* 迴圈(loop)是什麼?
套一下維基百科的解釋,迴圈是一種常見的控制流程。是一段在程式中只出現一次,但可能會連續執行多次的程式碼。迴圈中的程式碼會執行特定的次數,或者是執行到特定條件成立時結束迴圈,或者是針對某一集合中的所有項目都執行一次。
當控制條件成立時,讓程式重複執行某個指令;
翻成白話文範例就是,當我開始吃蘋果,直到吃完前,都要搖呼拉圈。
控制條件又可以分成: |
翻成白話文範例就是, |
控制變數的初始值 |
一顆完整的蘋果 |
控制變數讓迴圈結束的條件 |
吃完蘋果,停止搖呼拉圈 |
控制變數的更新值 (調整) |
咬三口蘋果 (被咬三口) |
* for迴圈(loop)
維基表示:「For迴圈是一種程式語言的迭代陳述,能夠讓程式碼反覆的執行。它跟其他的迴圈,如while迴圈,最大的不同,是它擁有一個迴圈計數器,或是迴圈變數。這使得For迴圈能夠知道在迭代過程中的執行順序。」python的for基本語法,可參考codecademy的loop說明。
簡單來說,for迴圈以固定數量的變數,作為控制條件的重點。
範例1:使用串列(mylist)裡固定數量的字元,作為控制條件
mylist = ['a', 'b', 'c']
for item in mylist:
print item
# 執行結果:
a
b
c
範例2:使用range()做出固定數量的數值,作為控制條件
for item in range(0, 3 , 1): #range(開始值,結束值(不算),間距),範例裡的間距為1,可省略不寫
print item
# 執行結果:
0
1
2
* while迴圈(loop)
維基表示:「while迴圈是一種控制流程的陳述。利用一個返回結果為布林值的表達式作為循環條件,當這個表達式的返回值為「true」時,則反覆執行循環體內的程式碼;若表達式的返回值為「false」,則不再執行循環體內的代碼,繼續執行循環體下面的代碼。」python的while基本語法,可參考codecademy的loop說明。
簡單來說,while迴圈以某個條件,作為控制條件的重點。
由 for 與 while 各自範例也可發現,for的控制條件:包含初始值、讓迴圈結束的條件、更新值,通常都是寫在同一行裡面的。while則會將控制三兄弟,分散至迴圈內外。
範例1:以控制變數(count)小於3,作為控制條件
count = 0 #初始值
while count < 3: #讓迴圈結束的條件
print count
count += 1 #更新值 (調整)
# 執行結果:
0
1
2
範例2:以while等於True,作為控制條件,製造無窮迴圈
因為while本身就是依靠布林值判斷進入迴圈與否,故python的無窮迴圈通常用while做,在製造無窮迴圈時,特別注意需搭配限定條件使用(例如:if 跟 break),不然電腦就會跑到天涯海角GG都停不下來~囧
count = 0
while True: #無窮迴圈起手式
print count
count += 1
if count > 2 : #當count大於2時,迴圈結束
break
# 執行結果:
0
1
2
總結,while的控制在一個條件成立;for的控制則在一個範圍之內。
以上。
留言列表