05 - 常用內建模組

04-函式 | 下一篇 → 06-速查表


os — 檔案系統操作

import os
 
os.getcwd()                    # 取得目前工作目錄
os.listdir(".")               # 列出目錄內容
os.path.exists("file.txt")    # 確認檔案是否存在
os.path.join("folder", "file.txt")   # 組合路徑(跨平台安全)
os.makedirs("new/folder", exist_ok=True)  # 建立資料夾

math — 數學計算

import math
 
math.sqrt(16)      # 4.0(開根號)
math.ceil(3.2)     # 4(無條件進位)
math.floor(3.8)    # 3(無條件捨去)
math.pi            # 3.14159...
math.log(100, 10)  # 2.0(log 以 10 為底)

random — 隨機數

import random
 
random.random()            # 0.0 到 1.0 的隨機浮點數
random.randint(1, 100)     # 1 到 100 的隨機整數
random.choice([1, 2, 3])   # 隨機選一個元素
random.shuffle([1, 2, 3])  # 隨機打亂(in-place)
random.sample([1,2,3,4,5], 3)  # 不重複抽取 3 個

datetime — 日期時間

from datetime import datetime, date, timedelta
 
now = datetime.now()
print(now)                    # 2026-04-22 12:34:56.789
print(now.strftime("%Y-%m-%d"))  # 2026-04-22
 
today = date.today()
yesterday = today - timedelta(days=1)
 
# 計算時間差
d1 = date(2026, 1, 1)
d2 = date(2026, 4, 22)
diff = d2 - d1
print(diff.days)    # 111

檔案讀寫(with open)

讀寫檔案一律用 with,它會在區塊結束時自動關檔(即使中途出錯),不會忘記 f.close()

# 寫檔("w" 會覆蓋整個檔案;encoding="utf-8" 處理中文必加)
with open("notes.txt", "w", encoding="utf-8") as f:
    f.write("第一行\n")
    f.write("第二行\n")
 
# 讀檔
with open("notes.txt", "r", encoding="utf-8") as f:
    content = f.read()          # 一次讀成一個字串
 
# 一行一行讀(檔案很大時較省記憶體,推薦)
with open("notes.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())     # strip() 去掉每行結尾的換行符
 
# 附加("a":接在檔尾,不覆蓋)
with open("notes.txt", "a", encoding="utf-8") as f:
    f.write("補一行\n")
模式意義
"r"讀取(預設)
"w"寫入(會清空原內容
"a"附加(接在檔尾)
"x"建立新檔(檔案已存在會報錯)

例外處理(try / except)

程式出錯時不要整個崩潰,而是「攔下來、好好處理」:

try:
    age = int(input("年齡:"))    # 使用者亂打字會出錯
    result = 100 / age
except ValueError:
    print("請輸入數字!")          # int("abc") 會丟 ValueError
except ZeroDivisionError:
    print("年齡不能是 0")          # 除以 0 會丟 ZeroDivisionError
else:
    print(f"結果:{result}")       # 沒出錯才執行
finally:
    print("不管有沒有錯都會跑")     # 常用來收尾(關檔、釋放資源)

常見錯誤型別:

例外何時發生
ValueError值不合法,如 int("abc")
TypeError型別不對,如 "a" + 1
KeyErrordict 取不存在的 key
IndexErrorlist 索引超出範圍
FileNotFoundError開不存在的檔案
ZeroDivisionError除以 0
# 取得錯誤訊息 / 主動拋出例外
try:
    raise ValueError("這是自訂錯誤訊息")
except ValueError as e:
    print(f"攔到錯誤:{e}")

不要用空的 except: 把所有錯誤都吞掉——你會看不到真正的問題。

盡量只攔「你預期會發生、且知道怎麼處理」的特定例外。


json — JSON 處理

import json
 
# dict → JSON 字串
data = {"name": "Andrew", "age": 28}
json_str = json.dumps(data, ensure_ascii=False, indent=2)
 
# JSON 字串 → dict
parsed = json.loads(json_str)
 
# 讀寫 JSON 檔案
with open("data.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)
 
with open("data.json", "r", encoding="utf-8") as f:
    loaded = json.load(f)

虛擬環境(venv)+ pip

不同專案常需要不同套件、甚至不同版本。虛擬環境讓每個專案有自己獨立的一套套件, 不會互相打架、也不會弄髒系統 Python。好習慣:每個新專案都先建一個 venv。

# 1. 在專案資料夾內建立虛擬環境(資料夾名慣例叫 venv 或 .venv)
python -m venv venv
 
# 2. 啟用(activate)
source venv/bin/activate        # macOS / Linux
venv\Scripts\activate           # Windows
 
# 啟用後命令列開頭會出現 (venv),代表現在在虛擬環境裡
 
# 3. 在裡面裝套件(只會裝到這個 venv,不影響系統)
pip install requests
 
# 4. 用完離開
deactivate

pip 常用指令

pip install requests           # 安裝套件
pip install requests==2.31.0   # 指定版本
pip install --upgrade requests # 升級
pip uninstall requests         # 移除
pip list                       # 查看已安裝套件
 
# 產生 requirements.txt(記錄專案所有相依套件與版本)
pip freeze > requirements.txt
 
# 別人拿到你的專案,一鍵裝齊所有相依套件
pip install -r requirements.txt

requirements.txt + venv 是 Python 專案的標準配備:

別人 clone 你的專案,只要 python -m venv venv → activate → pip install -r requirements.txt, 環境就跟你一模一樣。


常用第三方套件

套件用途
requestsHTTP 請求(爬蟲、API)
pandas表格 / 資料分析
numpy數值計算
matplotlib資料視覺化
flask輕量 Web 框架
selenium瀏覽器自動化

requests — 抓網頁 / 打 API(概念)

import requests
 
# GET:抓一個網址
resp = requests.get("https://api.github.com")
print(resp.status_code)    # 200 代表成功
data = resp.json()         # 若回傳是 JSON,直接轉成 dict
 
# 帶參數的 GET
resp = requests.get("https://example.com/search", params={"q": "python"})
 
# POST:送資料
requests.post("https://example.com/api", json={"name": "Andrew"})

pandas — 用表格的方式處理資料(概念)

pandas 的核心是 DataFrame,可以想成程式版的 Excel 表格:

import pandas as pd
 
# 讀進一個 CSV / Excel
df = pd.read_csv("scores.csv")
 
df.head()              # 看前 5 列
df["score"].mean()    # 某欄平均
df[df["score"] >= 60] # 篩選(只留及格的列)
df.to_csv("out.csv", index=False)   # 存回檔案

這兩個套件初學階段「知道它們是做什麼的、看得懂範例」就夠了,需要時再深入查文件。


04-函式 | 下一篇 → 06-速查表