for 迴圈
1. 何謂迴圈
結構化的程式是以循序(sequence)、選擇(selection)及重複(repetition)三種基本結構。
程式流程如果遇到重複結構時,會一直重複迴圈敘述,直到某一特定條件不成立,或是一集合體中的所有元素都已巡訪過,程式流程才會脫離迴圈,繼續循序向下執行。換句話說,重複結構就是我們只需撰寫一次,就可以連續多次執行的程式碼區塊。
2. range 函式
range是Python的內建函數,功能是產生一個整數串列,語法如下:
語法:range(終值)
range(初值,終值[,間隔值])
- 初值: 是串列的初始值,為非必要參數。如果省略初值時,則預設串列初值為
0。 - 終值: 是串列的終止值,此為必要參數不可省略。
- 間隔值:是串列的間隔值,該值可以為正值、負值或者省略。如果省略時,則預設間隔值為
1。假如間隔值是負值,則串列是遞減序列。
[例] 建立 0〜9 串列
range (10)[例] 建立 1〜6 串列
range (1, 7)[例] 建立 2、4、6、8、10 串列
range(2, 11, 2)3 for 敘述
for迴圈通常配合串列來運作,迴圈執行時會依序取出串列元素,指定給迴圈變數,一直到串列內無元素為止。for迴圈敘述要以「:」冒號為結尾,迴圈區塊要往後縮排。如果迴圈區塊只有一行程式碼時,迴圈區塊可以接續在冒號後面。
語法:
for 迴圈變數 in 串列:
迴圈區塊
[例] 使用for迴圈,撰寫一輸出字串的程式。(檔名:for_1.py)
程式碼:
for_1.pyfor x in 'Python': print(x) # Python 以直行輸出
[例] 使用for迴圈,撰寫一計算 1〜10之間所有整數加總,並且輸出計算結果的程式。(檔名:for_2.py)
程式碼:
for_2.pysum = 0 for x in range(1, 11): sum += x print(sum) # 輸出 55
4 for…else 敘述
for迴圈還可以加上else敘述與else敘述區塊。當for迴圈正常結束後,程式流程會執行else敘述區塊一次,同樣的else敘述要以冒號為結尾,敘述區塊要往右縮排。
語法:
for 迴圈變數 in 串列:
迴圈區塊
else:
else 敘述區塊
[例] 使用for...else迴圈,撰寫一個輸出字串內容的程式。程式要求:最後輸出「字串輸出完畢!」。(檔名:for_3.py)
程式碼:
for_3.py# -*- coding: utf-8 -*- for x in 'Python': print(x) else: print('字串輸出完畢!')
相關主題與延伸閱讀
- 4. 選擇結構:
for迴圈常搭配if選擇結構做條件篩選。 - 2. while 迴圈:同為重複結構的另一種寫法,可比較兩者的適用時機。
- 3. continue 與 break:介紹如何在
for迴圈中提前結束或跳過本次迴圈。 - 2. 一維串列:
for迴圈常搭配串列走訪其中的元素。 - 3. 使用迴圈操作串列:進一步示範如何用
for迴圈操作串列元素。