當我們需要重複一系列有規則的行為,例如從1加到100,或是取得物件裡面的每一個元素,例如將串列裡面的每個元素印出,重複地撰寫程式碼顯然不切實際,for迴圈便是可以讓程式對可迭代物件(iterable object)執行迭代(iteration)的工具。
for 迴圈基本語法
for迴圈的基本語法如下:
for item in object:
Do something to each item
以前面熟悉的串列來說,假如要將cities串列裡面的所有元素印出,在這之前只能一行一行寫print:
cities = ["台北", "桃園", "新竹", "台中", "台南"]
print(cities[0])
print(cities[1])
print(cities[2])
print(cities[3])
print(cities[4])
利用for迴圈,相同的工作,現在只要兩行程式碼就能解決,當串列內的元素愈來愈多後,for迴圈的優勢便更會顯現出來。
for city in cities: print(city)
執行結果:
台北
桃園
新竹
台中
台南
range() 函數
range()函數的目的是產生一個等差級數數列的可迭代物件,它在for迴圈的計數中很常被用到,它的語法如下:
range(start, stop[, step])
- start:數列的起始數字,若沒有輸入則預設為0。
- stop:數列到此數字之前必須停止,亦即不包含stop。
- step:數列的間隔,若沒有輸入則預設為1。
由上可知,range()函數可以有三種用法:
for number in range(5): print(number, end=" ")
執行結果:
0 1 2 3 4
for number in range(6, 11): print(number, end=" ")
執行結果:
6 7 8 9 10
for number in range(0, 11, 2): print(number, end=" ")
執行結果:
0 2 4 6 8 10
因此,若要從1加到100,也不用那麼辛苦從1+2+3+...一直寫到一百,只要幾行程式就能解決。
sum = 0
for number in range(1, 101): sum += number
print(sum)
執行結果
5050
程式範例