Python 字串方法(Python String Methods)
這篇 Python 字串方法教學將把實務上最常用的方法一次整理:切割、組合、去空白、取代、搜尋、大小寫。第 6 篇學了字串基礎與 f-string,這篇補上處理「髒資料」的工具——清理使用者輸入、解析文字檔都靠它們。
提醒:字串是不可變的,所有方法都回傳新字串,原字串不會被改變。
常用方法總覽
| 方法 | 說明 | 範例 |
|---|---|---|
split(sep) | 依分隔符切割成 List | "a,b,c".split(",") → ['a','b','c'] |
join(list) | 用字串把 List 接起來 | "-".join(['a','b']) → "a-b" |
strip() | 去除頭尾空白(或指定字元) | " hi ".strip() → "hi" |
replace(old, new) | 取代 | "a-b".replace("-", "_") → "a_b" |
find(x) | 回傳 x 的索引,找不到回 -1 | "abc".find("b") → 1 |
startswith(x) / endswith(x) | 開頭/結尾判斷 | "test.py".endswith(".py") → True |
upper() / lower() | 轉大寫/小寫 | "Hi".lower() → "hi" |
count(x) | 出現次數 | "aab".count("a") → 2 |
split():切割字串
把一個字串依分隔符拆成 List,解析 CSV 一行資料、處理輸入都用它:
csv_line = "小明,25,台北"
fields = csv_line.split(",")
print(fields)
# 不給參數時依「連續空白」切割
sentence = "Python is easy"
print(sentence.split())
執行輸出:
['小明', '25', '台北']
['Python', 'is', 'easy']
join():組合 List
join() 是 split 的相反,注意語法是「分隔符在前」:
fields = ["小明", "25", "台北"]
print(",".join(fields))
print(" | ".join(fields))
執行輸出:
小明,25,台北
小明 | 25 | 台北
strip():去除頭尾空白
清理使用者輸入的標配,lstrip()、rstrip() 只去左或右:
raw = " user@test.com \n"
print(repr(raw.strip()))
# 也可以指定要去除的字元
print("###標題###".strip("#"))
執行輸出:
'user@test.com'
標題
replace() 與 find()
text = "2026-06-05"
print(text.replace("-", "/"))
print(text.find("06")) # 第一次出現的索引
print(text.find("12")) # 找不到回傳 -1,不會報錯
執行輸出:
2026/06/05
5
-1
綜合實例:清理一批髒資料
把前面的方法串起來(方法可以連續呼叫,稱為鏈式呼叫):
raw_names = [" ALICE ", "bob ", " Charlie"]
clean = [name.strip().lower().capitalize() for name in raw_names]
print(clean)
執行輸出:
['Alice', 'Bob', 'Charlie']
常見錯誤
1. TypeError: sequence item 0: expected str instance, int found
join() 的 List 裡有非字串元素(",".join([1, 2]))。先轉成字串:",".join(str(n) for n in [1, 2])。
2. 以為方法會修改原字串
s.upper() 不會改變 s,要接住回傳值:s = s.upper()。寫了方法卻「沒效果」幾乎都是這個原因。
3. split 與 join 的主詞搞反
split 的主詞是「被切的字串」("a,b".split(",")),join 的主詞是「分隔符」(",".join(lst))。初學最容易寫反。
總結
split 切、join 接、strip 清、replace 換、find 找——這五個方法覆蓋日常字串處理八成的需求;搭配鏈式呼叫與 List Comprehension 可以漂亮地清理整批資料。下一篇是第二階段的綜合實作:學生成績管理程式。