大家好,我是 星源,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 - 模塊導入:
import或from ... import - 提前終止:
sys.exit()
✨ 課後習題
- 布爾數據類型的兩個值?如何拼寫?
- 3 個布爾操作符?
- 寫出每個布爾操作符的真值表。
- 計算下列表達式:
(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)
- 6 個比較操作符?
- 等於操作符
==與賦值操作符=的區別? - 解釋“條件”及可用位置。
- 識別代碼中的 3 個代碼塊。
- 寫代碼:
spam為 1 → 打印Hellospam為 2 → 打印Howdy- 其它 → 打印
Greetings!
- 程序陷入無限循環按什麼鍵?
- break 與 continue 區別?
range(10)、range(0,10)、range(0,10,1)區別?- 用
for和while各寫 1–10 打印程序。 - 模塊
spam中函數bacon()如何調用?
附加題:查round()與abs()並實驗。
✅ 總結
- 條件判斷:
if/elif/else組合成多分支。 - 循環:
while條件循環,for固定次數循環。 - 逃生通道:
break跳出,continue跳過。 range()三兄弟:開始、結束、步長。import把別人寫好的超能力搬進你的代碼!
📢 互動提問
👉 “你第一次寫 while True 時,有沒有忘記寫 break 導致程序狂飆?”
留言分享你的“死循環”黑歷史,一起笑出腹肌!