寫程式不只是在處理資料,更是要根據「條件」決定下一步,或重複做某些事。本講義將介紹流程控制語句(if
、for
、while
)以及邏輯運算(and
、or
、not
),讓你的程式不再是一條直線,而能根據情境靈活反應。
❓ 1. if 判斷式
➤ 用法:
x = 10
if x > 5:
print("大於5")
elif x == 5:
print("等於5")
else:
print("小於5")
# 輸出:大於5
➤ 說明:
if
是條件為真時執行的區塊。elif
(else if)可接續其他條件。else
為所有條件皆不符合時執行。
➤ 注意事項:
- 冒號(
:
)必不可少。 - 區塊內要縮排(通常是 4 個空格)。
🔁 2. for 迴圈
➤ 用法:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 輸出:
# apple
# banana
# cherry
➤ 用 range() 產生數列:
for i in range(3): # 產生 0, 1, 2
print(i)
# 輸出:
# 0
# 1
# 2
延伸:range(a, b, c) 的含義
a
是起始值(包含)b
是結束值(只到b-1,不包含b)c
是間隔數range(n)
產生從 0 到 n-1 的整數。- 適合用來走訪 list、字串、dict 等。
for i in range(1, 10, 2):
print(i)
# 輸出:
# 1
# 3
# 5
# 7
# 9
➤ 結合 enumerate():
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
# 輸出:
# 0 apple
# 1 banana
# 2 cherry
🔄 3. while 迴圈
➤ 用法:
x = 0
while x < 3:
print(x)
x += 1
# 輸出:
# 0
# 1
# 2
➤ 說明:
- 當條件為真時就會一直執行。
- 若條件永遠為真,可能會進入「無限迴圈」。
➤ 補充:x += 1 是什麼意思?
x += 1
等同於:
x = x + 1
這表示把目前的 x
加 1 並重新存回 x
裡,是 while 迴圈中常見用法,避免無限重複。
🧠 4. break 與 continue
➤ break:提早結束迴圈
for i in range(5):
if i == 3:
break
print(i)
# 輸出:
# 0
# 1
# 2
➤ continue:跳過當前這次迴圈
for i in range(5):
if i == 3:
continue
print(i)
# 輸出:
# 0
# 1
# 2
# 4
🔍 5. 邏輯運算子
➤ 用法:
age = 8
if age > 5 and age < 12:
print("兒童")
if not age > 18:
print("未成年")
# 輸出:
# 兒童
# 未成年
➤ 常見邏輯符號與說明:
and
:兩個條件都為 True 時,結果為 True。if score >= 60 and score <= 100:
print("及格")or
:只要其中一個條件為 True,結果就為 True。if user == "admin" or user == "root":
print("進入管理模式")not
:將條件結果反轉。if not is_active:
print("帳號未啟用")
⚠️ 常見錯誤提醒(if 判斷式)
- ❌ 忘記加冒號
:
:例如if x > 5
(錯),應改為if x > 5:
- ❌ 區塊沒縮排:Python 需要用 固定縮排(通常為4個空格)表示程式區塊,否則會出現
IndentationError
- ❌ 條件錯誤:寫成
if x = 5
(錯),應該是==
判斷等於(=
是賦值)
⚠️ 常見錯誤提醒(for 與 while 迴圈)
- ❌ 忘記更新條件變數(while):若寫成
while x < 3:
但未在內部x += 1
,將造成無限迴圈。 - ❌ 錯誤縮排:例如
print(i)
未縮排在for
內部,會導致語法錯誤或邏輯錯誤。 - ❌ 使用錯誤型態:像
for i in 5:
(錯),應該是for i in range(5):
- ❌ 不熟 range 語法:例如以為
range(1,5)
包含 5,其實不包含終點數。 - ❌ 在
for
內誤用break
導致提前結束,忘了是條件還沒達成。 - ❌ 忘記加冒號
:
:例如if x > 5
(錯),應改為if x > 5:
- ❌ 區塊沒縮排:Python 需要用 固定縮排(通常為4個空格)表示程式區塊,否則會出現
IndentationError
- ❌ 條件錯誤:寫成
if x = 5
(錯),應該是==
判斷等於(=
是賦值)
🎯 小練習
🧪 練習1:印出1到10中,除了3的倍數以外的數字
for i in range(1, 11):
if i % 3 == 0:
continue
print(i)
# 輸出:
# 1
# 2
# 4
# 5
# 7
# 8
# 10
🧪 練習2:當使用者輸入密碼正確才跳出
while True:
pwd = input("請輸入密碼:")
if pwd == "1234":
print("登入成功")
break
# 若輸入正確密碼,輸出:登入成功
📚 第3集總結:
- 使用
if
判斷程式該走哪一條路 - 搭配
for
與while
執行重複任務 - 邏輯運算幫助程式做更精準的判斷
➡️ 下一集將介紹函式與進階應用(def
、return
、enumerate
、zip
),讓你寫出結構清楚、可重用的程式碼!