3.1. for-loop 結構
在Python中我們可以使用「for-loop」結構(或稱 for 迴圈)來重複執行某些特定的程式碼,for 迴圈是一種比較容易使用的迴圈結構,通常搭配 range() 物件類別一起使用。
for i in range(n):
執行此處的程式碼
- 參考檔案:for-loop.py
for i in range(10):
print(i)
# 執行結果
0
1
2
3
4
5
6
7
8
9
此外,我們也可以用 range(a, b)來自定 range 的範圍,例如:i 值的範圍是 a <= i < b。
- 參考檔案:for-loop2.py
for i in range(1, 11):
print(i)
# 執行結果
1
2
3
4
5
6
7
8
9
10
此外,我們也可以用 range(a, b, c)來自定 range 的範圍及間隔,例如:i 值的範圍是 a <= i + c < b。
- 參考檔案:for-loop3.py
for i in range(1, 11, 2):
print(i)
# 執行結果
1
3
5
7
9
使用 break 跳出迴圈
在使用 for 迴圈時,有時候需要執到某些特定條件成立時跳出迴圈,此時會使用 if 結構及 break 關鍵字來達成 。
- 參考檔案:for-loop-break.py
for i in range(10):
if i == 5:
print('-' + str(i))
print('-Use break!!')
break
print(i)
# 執行結果
0
1
2
3
4
-5
-Use break!!
使用 continue 跳過某次執行
在使用 for 迴圈時,另一些時候需要當某些條件成立時忽略某次執行,此時會使用 if 結構及 continue 關鍵字來達成。
- 參考檔案:for-loop-continue.py
for i in range(10):
if i == 5:
print()
continue
print(i)
# 執行結果
0
1
2
3
4
6
7
8
9
牛刀小試
- d392: 讀取練習——强大的加法![參考答案] ★, practice
- 使用 for 迴圈、算術運算子
- 程式設計步驟:
# 步驟1: 處理資料輸入。
import sys
for s in sys.stdin:
# 步驟2: 資料處理,例如:對字串去除頭尾符號、字串分割。
s = s.strip(" \t\r\n")
s = s.split()
步驟3: 使用 for 迴圈,累加及輸出結果。
sum = 0
for i in s:
sum += int(i)
print(sum)
牛刀小試2
- b516: 凱撒密碼-商競103 [參考答案] ★★
- 使用 for 迴圈、算術運算子
- 程式設計步驟:
#步驟1: 處理資料輸入。
s = input("")
# 步驟2: 資料類型轉換。
s = s.strip(" \t\r\n")
n = int(s)
for i in range(0, n):
# 步驟3: 取出要處理的資料。
s = input("")
s = s.strip(" \t\r\n")
# 步驟4: 使用 for 迴圈,對每個字元做處理。
o = ""
for j in range(0, len(s)):
# 取得字元的ASCII碼及做數字位移
a = ord(s[j]) - 65
a = (a + 3) % 26 + 65
o += str(chr(a))
print(o)
躍躍欲試
- for 迴圈:
- for 迴圈 + If:
- d490: 我也愛偶數 [參考答案], practice
- for 迴圈 + If-Else:
- a022: 迴文 [參考答案] ★★★, practice+
- a148: You Cannot Pass?! [參考答案] ★
- a244: 新手訓練 ~ for + if [參考答案] ★, practice
- b367: 翻轉世界 [參考答案] ★★★
- b838: 104北二2.括號問題 [參考答案] ★★★, practice+
- d018: 字串讀取練習 [參考答案] ★
- d074: 電腦教室 [參考答案]
- d086: 態度之重要的證明 [參考答案] ★★
- d561: 被秒殺的四捨五入 [參考答案]
- d586: 哈密瓜美語 [參考答案] ★★★
- for 迴圈 + If-Elif-Else:
- a624: 4. Password Analyzer [參考答案] ★★★
- d587: 參貳壹真好吃 [參考答案] ★★
參考資料
- Python自動化的樂趣, 第二章, Al Sweigart 著、H&C 譯, 碁峰
- Python編程入門第3版(簡), 第四章, Toby Donaldson著, 人民郵電出版社
- 精通Python, 第四章, Bill Lubanovic著, 賴屹民譯, 歐萊禮