Python 字串方法

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 可以漂亮地清理整批資料。下一篇是第二階段的綜合實作:學生成績管理程式。

延伸閱讀