CP & CA(二)W2|Python 進階(二)必考 NOTE

更新 發佈閱讀 9 分鐘

🎯 本週一句話主線

把「程式可重用」再升級成「可控、可擴充、可除錯」:

例外處理進階 + 字串/資料解析 + 推導式/生成器 + 排序 key + 基礎複雜度


1) 必考核心觀念(W2 高頻)

1.1 變數作用域:LEGB(常考觀念)

  • Local(函式內)
  • Enclosing(巢狀函式外層)
  • Global(模組層)
  • Built-in(內建)
  • 修改外層變數:
    • nonlocal x(巢狀函式)
    • global x(全域)

1.2 可變/不可變(side effect 陷阱)

  • 不可變int, float, str, tuple
  • 可變list, dict, set
  • 參數傳遞是「物件參考」:可變物件可能被函式原地修改

1.3 淺拷貝 vs 深拷貝(常考)

  • b = a:同一物件(alias)
  • b = a[:]淺拷貝(只拷第一層)
  • copy.deepcopy(a)深拷貝(含巢狀)

2) 字串/資料解析模板(W2 必考)

2.1 常用字串方法

  • strip():去頭尾空白
  • split():切分欄位
  • replace():替換
  • startswith():判斷開頭(例如註解行 #
s = line.strip()
parts = s.split(",")
s2 = s.replace(" ", "")
if s.startswith("#"):
continue

2.2 解析 key=value(超高頻)

token = "k=123"
k, v = token.split("=")
v = int(v)

2.3 解析多行資料(像 log / csv / 表格)

records = []
for line in lines:
if not line.strip():
continue
a, b, c = line.strip().split()
records.append((a, int(b), float(c)))

3) 例外處理進階(必考)

3.1 except ... as e + else + finally

try:    
x = float(input())
y = 1 / x
except (ValueError, ZeroDivisionError) as e:
print("bad input:", e)
else:
print("ok:", y) # 沒例外才會走
finally:
print("done") # 一定會走(收尾/關檔)

3.2 主動丟例外(題目要求輸入不合法就拒絕)

if x < 0:    raise ValueError("x must be non-negative")

4) 推導式 / 生成器(效能 + 可讀性)

4.1 List comprehension

squares = [x*x for x in nums if x % 2 == 0]

4.2 Dict comprehension

m = {name: score for name, score in pairs}

4.3 Generator expression(省記憶體)

total = sum(x*x for x in nums)

4.4 考點:list vs generator

  • list:立即生成、可 len()、較吃記憶體
  • generator:惰性生成、省記憶體、用過會被消耗

5) 排序與 key(W2 最高頻技能)

5.1 sort() vs sorted()

  • arr.sort(...):原地排序
  • sorted(arr, ...):回傳新 list
arr.sort(key=lambda x: x[1])                 # 依第2
brr = sorted(arr, key=lambda x: x[1])

5.2 逆序(由大到小)

arr.sort(key=lambda x: x[1], reverse=True)

5.3 多鍵排序

arr.sort(key=lambda x: (x[1], x[0]))         # 先比第2欄,再比第1

6) 檔案 I/O(若課堂有帶到,期末更常用)

6.1 讀檔(推薦 with)

with open("data.txt", "r", encoding="utf-8") as f:    
lines = f.readlines()

6.2 寫檔

with open("out.txt", "w", encoding="utf-8") as f:    
f.write("hello\n")

7) 複雜度直覺(加分點/避免超時)

  • 單迴圈:O(n)
  • 雙迴圈:O(n²)
  • 排序:O(n log n)
  • dict/set 查找:平均 O(1)

考試策略:能用 dict/set 就不要用 list 線性查找。


8) W2 範例(可直接改作業/考題)

範例 1:解析多行 name score,輸出 Top-3(排序 + 例外)

import sys

def parse_line(line):

name, s = line.strip().split()

score = float(s)

return name, score

def solve(lines):

items = []

for line in lines:

if not line.strip():

continue

try:

items.append(parse_line(line))

except ValueError:

continue # 格式錯就跳過(或改成 raise 視題意)

items.sort(key=lambda x: x[1], reverse=True)

return items[:3]

def main():

lines = sys.stdin.read().splitlines()

top3 = solve(lines)

for name, score in top3:

print(name, f"{score:.2f}")

if __name__ == "__main__":

main()

範例 2:淺拷貝陷阱(觀念題常考)

a = [[1, 2], [3, 4]]

b = a[:] # shallow copy

b[0][0] = 999

# a[0][0] 也會變 999

import copy

c = copy.deepcopy(a)

9) 易錯點(扣分熱區)

  • 可變物件被函式原地改掉(side effect)
  • a[:] 只能複製第一層,巢狀仍共享
  • split() 欄位數不對 → ValueError
  • 排序忘記 keyreverse
  • generator 被消耗一次就沒了
  • 檔案未用 with/編碼錯誤
  • 用 list 線性查找造成超時(應改 dict/set)

10) ✅ 考前 10 分鐘速讀清單(必背 10 條)

  1. try/except/else/finally 流程
  2. raise ValueError("msg")
  3. list/dict comprehension
  4. sum(x*x for x in nums)(generator)
  5. arr.sort(key=lambda x: ...)
  6. 多鍵排序 (x[1], x[0])
  7. shallow vs deep copy
  8. dict/set 平均 O(1) 查找
  9. with open(..., encoding="utf-8")
  10. LEGB + global/nonlocal
留言
avatar-img
「2060AIHANS 애한스|頂大修課紀錄研究室」
0會員
118內容數
「2060AIHANS 애한스|修課紀錄研究室」專門紀錄我在大學修課的學習軌跡:每堂課重點推導、作業解題、實驗量測、除錯筆記與延伸閱讀,皆以工程化方式整理成可複用模板。目標是讓知識可追溯、能力可量化,並把課堂收穫轉化為可長期複利的技術資產。
你可能也想看
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
【開箱分享】Lig.翎光界|小資必收的高CP值眼鏡推薦 👓 最近入手了副 Lig.翎光界 的眼鏡,真的超出我的期待! 因為我本身是小資族,買東西最在意的就是 CP值,既要好看又要實用,還不能太貴。 這次體驗之後,覺得非常值得跟大家分享,尤其想找 小資眼鏡推薦 的朋友一定要看下去!
Thumbnail
【開箱分享】Lig.翎光界|小資必收的高CP值眼鏡推薦 👓 最近入手了副 Lig.翎光界 的眼鏡,真的超出我的期待! 因為我本身是小資族,買東西最在意的就是 CP值,既要好看又要實用,還不能太貴。 這次體驗之後,覺得非常值得跟大家分享,尤其想找 小資眼鏡推薦 的朋友一定要看下去!
Thumbnail
分享這間臺中北區的住宿推薦,價格實惠且飯店設施齊全,地點交通便利,靠近天津年貨大街和文心中清捷運站。住宿有雙床房型及雙人加大床房型可選,且提供早餐。飯店內設施完備,房內乾淨且浴室設有浴缸。早餐為現點現做,有葷素選擇及水果飲料,CP值高且早餐好吃,住宿交通方便,值得推薦。
Thumbnail
分享這間臺中北區的住宿推薦,價格實惠且飯店設施齊全,地點交通便利,靠近天津年貨大街和文心中清捷運站。住宿有雙床房型及雙人加大床房型可選,且提供早餐。飯店內設施完備,房內乾淨且浴室設有浴缸。早餐為現點現做,有葷素選擇及水果飲料,CP值高且早餐好吃,住宿交通方便,值得推薦。
Thumbnail
第一篇聊到了 SPC 的運作原理是基於隨機資料與常態分佈的理論基礎;第二篇談到了實際應用的工具「管制圖」,認識了代表客戶的規格線、品管內部控制的管制界線、ABC 區、八大監控法則還有選擇管制圖的分類。實際應用上還需要回答一個關鍵問題「到底做的好不好?」,有沒有量化的指標來幫助我們判斷製程能力好壞?
Thumbnail
第一篇聊到了 SPC 的運作原理是基於隨機資料與常態分佈的理論基礎;第二篇談到了實際應用的工具「管制圖」,認識了代表客戶的規格線、品管內部控制的管制界線、ABC 區、八大監控法則還有選擇管制圖的分類。實際應用上還需要回答一個關鍵問題「到底做的好不好?」,有沒有量化的指標來幫助我們判斷製程能力好壞?
Thumbnail
跟三重蘆洲地區的朋友們推薦一家鐵板燒 緣味鐵板燒 位於徐匯廣場 B2(徐匯中學捷運站共構大樓) 我覺得大家一定要來支持緣味鐵板燒 因為緣味是屬於比較精緻又價錢合宜的鐵板燒 東西好吃不用說 這裡我分享一些照片 看了就知道 蔥蛋 (好吃鬆軟又營養) 鐵板豆腐 (營養軟嫩入味調味恰到好處) 好下飯 松阪豬
Thumbnail
跟三重蘆洲地區的朋友們推薦一家鐵板燒 緣味鐵板燒 位於徐匯廣場 B2(徐匯中學捷運站共構大樓) 我覺得大家一定要來支持緣味鐵板燒 因為緣味是屬於比較精緻又價錢合宜的鐵板燒 東西好吃不用說 這裡我分享一些照片 看了就知道 蔥蛋 (好吃鬆軟又營養) 鐵板豆腐 (營養軟嫩入味調味恰到好處) 好下飯 松阪豬
Thumbnail
以下店家都提供免費編髮、包包、置物櫃,大家可以依照自己的需求去選擇適合自己的韓服店。最後有韓服少女租借經驗分享,與租借時間建議,希望大家都可以找到適合的韓服店!
Thumbnail
以下店家都提供免費編髮、包包、置物櫃,大家可以依照自己的需求去選擇適合自己的韓服店。最後有韓服少女租借經驗分享,與租借時間建議,希望大家都可以找到適合的韓服店!
Thumbnail
在婚姻的智慧裡,我有提到我們說好每個星期都要到外面吃一次飯,重溫約會的感覺! 昨天是小週末,所以我們又出門啦! 🤭 這次我們選的是位於楠梓健身工廠正對面的赤頂熟成牛排,印象中這個地方已經換過好幾次餐廳,以前好像是火鍋店?! 感覺楠梓的餐廳真的瞬息萬變啊!
Thumbnail
在婚姻的智慧裡,我有提到我們說好每個星期都要到外面吃一次飯,重溫約會的感覺! 昨天是小週末,所以我們又出門啦! 🤭 這次我們選的是位於楠梓健身工廠正對面的赤頂熟成牛排,印象中這個地方已經換過好幾次餐廳,以前好像是火鍋店?! 感覺楠梓的餐廳真的瞬息萬變啊!
Thumbnail
巴里島擁有成千上萬的住宿選擇, 要怎麼樣挑選出裝潢美、氣氛佳、位置方便的好酒店確實讓人難以決定.我們綜合了一些國外旅遊網站的旅客評論,整理出了11間最受歡迎的精品酒店,住一晚不到美金$30,物超所值, 假掰美照拍不停,又可以讓你住的開心喔!
Thumbnail
巴里島擁有成千上萬的住宿選擇, 要怎麼樣挑選出裝潢美、氣氛佳、位置方便的好酒店確實讓人難以決定.我們綜合了一些國外旅遊網站的旅客評論,整理出了11間最受歡迎的精品酒店,住一晚不到美金$30,物超所值, 假掰美照拍不停,又可以讓你住的開心喔!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News