Python 匯入練習:模組、別名與標準函式庫
匯入只是很小的語法,卻能帶來很大的收益:你可以直接使用經過測試的程式碼,而不是重新實現每個工具。關鍵是讓每個名字的來源清楚可見。
匯入模組,再使用命名空間
import math 會載入模組,並通過 math 物件暴露其中的名字。給函式加上模組名前綴,讀者就知道它來自哪裡,也不容易和自己的變數重名。
import math
print(math.sqrt(81))
print(math.pi)模組命名空間
把一個名字帶入目前作用域
from statistics import mean 讓 mean 可以直接使用。名字含義明確時,這種寫法很簡潔。可以用逗號匯入多個名字,但列表要短到一眼能掃完。
from statistics import mean, median
scores = [7, 9, 10]
print(mean(scores))
print(median(scores))有選擇的 from-import
別名要提升可讀性
別名不會複製或重命名磁碟上的模組,只是在目前檔案裡換一個存取名字。長模組名常用短別名,但不要用讓人費解的縮寫。
import random as rnd
rnd.seed(7)
print(rnd.choice(["latte", "tea", "mocha"]))一個簡短別名
先探索標準函式庫
自己寫輔助函式之前,先確認標準函式庫是否已經提供。math 負責常見數學運算,statistics 負責統計摘要,re 負責文字模式。讀官方文件也是學習語言的一部分。
import math
print(math.gcd(12, 18))
print(math.factorial(5))不必自己實現的實用函式
避免通配符匯入
from module import * 會隱藏名字來源,還可能悄悄覆蓋你已經使用的名字。優先使用 import module,或明確列出要匯入的名字。顯式匯入更容易搜尋、測試和解釋。
from math import ceil, floor
print(ceil(2.1))
print(floor(2.9))顯式寫法更容易追蹤
你的練習清單
- 需要清楚的命名空間時,用 import module。
- 只需要少量名字時,用 from module import name。
- 別名只有在讓程式碼更易讀時才使用。
- 自己寫工具函式前,先檢查標準函式庫。
常見問題
import math 和 from math import sqrt 有什麼區別?
import math 會載入整個模組,呼叫時要寫 math.sqrt。from math import sqrt 會把 sqrt 帶入目前命名空間,可以直接呼叫 sqrt。
匯入會很慢嗎?
Python 會快取已經匯入的模組,後續匯入通常很快。大型第三方包在首次啟動時仍可能耗時。
應該使用 import * 嗎?
通常不要。它會隱藏名字來源,還可能覆蓋已有變數。顯式匯入更容易理解和維護。
練習匯入
12 道題,覆蓋模組、from-import、別名、math 和 statistics。
繼續閱讀: