大家好,我是 星源,19歲自學 Python 的編程小白 🤓。

繼續上節課沒講完的控制流程!今天把 if / else / elif / while / for 全部吃透,再配習題鞏固,組合拳打滿!


📌 今日學習內容

👉 “讓程序會分支、會循環、會跳步,徹底告別‘直線思維’!”


✨ 知識點講解

1️⃣ 程序執行

  • 概念:默認從上到下逐行執行。控制流語句會讓執行“拐彎”或“回頭”。
  • 比喻:把代碼打印出來,用手指逐行追蹤,遇到 if/while 就要看條件真假決定走向。

2️⃣ 控制流語句

if 語句
  • 格式
if 條件:
    代碼塊
  • 示例
if name == 'Alice':
    print('Hi, Alice.')
else 語句
  • 格式
if 條件:
    代碼塊A
else:
    代碼塊B
  • 示例
if name == 'Alice':
    print('Hi, Alice.')
else:
    print('Hello, stranger.')
elif 語句
  • 格式
if 條件1:
    ...
elif 條件2:
    ...
elif 條件3:
    ...
else:
    ...
  • 注意:順序很重要!一旦某個條件為真,後面的 elif/else 直接跳過。
  • 示例(vampire.py):
if name == 'Alice':
    print('Hi, Alice.')
elif age < 12:
    print('You are not Alice, kiddo.')
elif age > 2000:
    print('Unlike you, Alice is not an undead, immortal vampire.')
elif age > 100:
    print('You are not Alice, grannie.')
while 循環
  • 格式
while 條件:
    代碼塊
  • 示例
spam = 0
while spam < 5:
    print('Hello, world.')
    spam += 1
  • 運行效果:打印 5 次後停止。
惱火的循環(死循環示例)
name = ''
while name != 'your name':
  print('Please input your name.')
  name = input()
print('Thank you!')
  • 小提示 🧐:別忘了在循環裏更新變量,否則永遠出不來!
break 語句
  • 作用:立即跳出當前循環。
  • 示例
while True:
    name = input()
    if name == 'your name':
        break
continue 語句
  • 作用:跳過本次循環剩餘語句,直接開始下一輪。
  • 示例
while True:
    name = input('Who are you? ')
    if name != '星源':
        continue
    password = input('Hello, 星源. Password? ')
    if password == 'root':
        break
print('Access granted.')
for 循環 + range()
  • 格式
for 變量 in range(開始, 結束, 步長):
    代碼塊
  • 示例
for i in range(5):
    print(i)        # 0 1 2 3 4
for j in range(5, -1, -1):
    print(j)        # 5 4 3 2 1 0
等價的 while 循環
i = 0
while i < 5:
  print(i)
  i += 1
range() 的 3 個參數

參數

含義

默認值

開始

序列起始值

0

結束

序列上限(不含)

必填

步長

每次增加的步幅

1


3️⃣ 導入模塊

  • 語法
import random
for i in range(5):
    print(random.randint(1, 10))
  • 小提示 🧐:調用函數要寫 模塊名.函數名,如 random.randint

4️⃣ from import *

  • 寫法
from random import *
print(randint(1, 10))   # 不需要 random.
  • 注意:容易命名衝突, 不推薦。

5️⃣ 用 sys.exit() 提前結束程序

  • 示例
import sys
while True:
    response = input('Type exit to exit: ')
    if response == 'exit':
        sys.exit()

6️⃣ 本章小結

  • 條件表達式 → True/False
  • 控制流:if / else / elif / while / for / break / continue
  • 模塊導入:importfrom ... import
  • 提前終止:sys.exit()

✨ 課後習題

  1. 布爾數據類型的兩個值?如何拼寫?
  2. 3 個布爾操作符?
  3. 寫出每個布爾操作符的真值表。
  4. 計算下列表達式:
  • (5 > 4) and (3 == 5)
  • not (5 > 4)
  • (5 > 4) or (3 == 5)
  • not ((5 > 4) or (3 == 5))
  • (True and True) and (True == False)
  • (not False) or (not True)
  1. 6 個比較操作符?
  2. 等於操作符 == 與賦值操作符 = 的區別?
  3. 解釋“條件”及可用位置。
  4. 識別代碼中的 3 個代碼塊。
  5. 寫代碼:
  • spam 為 1 → 打印 Hello
  • spam 為 2 → 打印 Howdy
  • 其它 → 打印 Greetings!
  1. 程序陷入無限循環按什麼鍵?
  2. break 與 continue 區別?
  3. range(10)range(0,10)range(0,10,1) 區別?
  4. forwhile 各寫 1–10 打印程序。
  5. 模塊 spam 中函數 bacon() 如何調用?
    附加題:查 round()abs() 並實驗。

✅ 總結

  1. 條件判斷:if/elif/else 組合成多分支。
  2. 循環:while 條件循環,for 固定次數循環。
  3. 逃生通道:break 跳出,continue 跳過。
  4. range() 三兄弟:開始、結束、步長。
  5. import 把別人寫好的超能力搬進你的代碼!

📢 互動提問

👉 “你第一次寫 while True 時,有沒有忘記寫 break 導致程序狂飆?”
留言分享你的“死循環”黑歷史,一起笑出腹肌!