
在程式設計領域中,「流程控制與迴圈」扮演著至關重要的角色。其主要用途是讓程式能夠根據特定的條件進行決策,並根據不同情境執行相應的操作。這不僅提升了程式的靈活性,還讓程式具備自動化執行重複性任務的能力。
以下是「流程控制與迴圈」在Python中的重要性:
- 決策能力與條件判斷
流程控制(如if-elif-else結構)使程式具備了根據不同條件執行不同操作的能力,實現條件分支處理。 - 提高程式的自動化能力
迴圈結構(如for和while)讓程式可以在特定條件下,自動執行重複性的任務。迴圈可以極大地減少冗長的程式碼,提升效率。 - 有效管理大規模數據
在處理大數據量時,無論是數據分析、文件處理、網頁爬蟲還是數值運算,迴圈扮演了重要角色。它讓程式能夠快速度遍歷大量項目、執行批次操作並記錄結果,這是手動操作難以達成的。
🔄流程控制
條件判斷
條件判斷語句允許程式執行不同的代碼,依條件結果決定程式執行的邏輯。
if
:用於判斷條件是否成立,若成立即執行對應程式碼。elif
:用於指定額外條件,當上方的if
條件不成立時檢查其他可能性。else
:當所有條件皆不成立時執行。
age = 18
if age < 18:
print("未成年")
elif age == 18:
print("剛滿 18 歲,歡迎成為成人")
else:
print("成年")
# 輸出
剛滿 18 歲,歡迎成為成人
巢狀條件控制(Nested Conditions)
巢狀條件允許在 if、elif 或 else 區塊內再進行條件判斷,用於處理複雜的邏輯場景。
score = 85
if score >= 60:
print("及格")
if score >= 85:
print("表現卓越!")
else:
print("表現普通")
else:
print("不及格")
# 輸出
及格表現卓越!
🛞 迴圈
for 迴圈與 range()
for
: 用於遍歷固定區間的數值或可迭代對象(例如列表、字串)。range()
: 生成一系列的數字,通常搭配 for 迴圈使用。
# 遍歷 0 到 4
for i in range(5): # 預設從 0 開始,間隔為 1
print(f"數字:{i}")
# 自訂範圍與步長
for j in range(1, 10, 2): # 從 1 開始,遞增步長為 2
print(f"奇數:{j}")
# 輸出
數字:0
數字:1
數字:2
數字:3
數字:4
奇數:1
奇數:3
奇數:5
奇數:7
奇數:9
range參數說明

while 迴圈
根據條件是否成立來執行迴圈內的程式,條件成立則會持續執行,直到條件不成立時停止迴圈。
count = 0
while count < 5:
print(f"目前計數:{count}")
count += 1 # 每次迴圈,計數加 1
# 輸出
目前計數:0
目前計數:1
目前計數:2
目前計數:3
目前計數:4
💡特別注意:要設定迴圈跳脫機制,否則會不停地執行直到當機
迴圈控制關鍵字:break、continue、pass
break
:強制結束迴圈執行
for i in range(10):
if i == 5: # 遇到條件 i == 5 時終止迴圈
break
print(f"迴圈值:{i}")
# 輸出
迴圈值:0
迴圈值:1
迴圈值:2
迴圈值:3
迴圈值:4
continue
:跳過當前迴圈的剩餘程式碼,直接進入下一次迴圈
for i in range(5):
if i == 2: # 跳過 i == 2 的情況
continue
print(f"迴圈值:{i}")
# 輸出
迴圈值:0
迴圈值:1
迴圈值:3
迴圈值:4
pass
:作為佔位符,不執行任何動作,通常用於填充代碼結構
for i in range(3):
if i == 1:
pass # 此處不執行任何操作
print(f"迴圈值:{i}")
# 輸出
迴圈值:0
迴圈值:1
迴圈值:2
迴圈實作1:九九乘法表
九九乘法表是每個人在學程式語言時會碰到的基礎練習,重點在於如何使用雙層迴圈。除了使用for之外,大家也可以試著使用while來完成。
for i in range(1, 10): # 外層迴圈表示第一個數字
for j in range(1, 10): # 內層迴圈表示第二個數字
print(f"{i} x {j} = {i \* j}", end="\t") # 使用 \t 產生水平對齊
print() # 每次內層迴圈結束後換行
# 輸出
1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 =
迴圈實作2:金字塔
金字塔系列題目是迴圈教學裡面經典中的經典,重點在於思考空格與”*”的數量和排列。除了下列示範的正金字塔以外,還有其他變形如倒金字塔、雙層金字塔等進階挑戰。
# 金字塔高度
height = 5
# 使用 for 迴圈輸出金字塔
for i in range(1, height + 1): # 外層迴圈決定金字塔的層數
# 計算每層的空格數量(用於置中顯示)
spaces = height - i # 計算每層的 `*` 數量
stars = 2 * i - 1
# 印出該層的空格與星星
print(" "*spaces + "*"* stars)
# 輸出
*
***
*****
*******
*********
迴圈實作3:菱形金字塔
菱形金字塔是由兩個金字塔組成(上半部為正金字塔,下半部為倒金字塔),這是金字塔系列中的進階題目。重點在於將上下半部金字塔分開思考,最後再組合。
# 金字塔高度
levels = 5
# 上半部(包含中間層)
for i in range(1, levels + 1):
spaces = levels - i # 每層對應的前置空格數
stars = i * 2 - 1 # 每層對應的星號數
print(" " * spaces + "*" * stars)
# 下半部(不包含中間層,反向打印)
for i in range(levels - 1, 0, -1): # 從 levels-1 倒數到 1
spaces = levels - i stars = i * 2 - 1
print(" "* spaces + "*"* stars)
# 輸出
*
***
*****
*******
*********
*******
*****
***
*