Python 字串(Python String)
這篇 Python 字串教學將帶你認識字串的建立、索引取值與最重要的 f-string 格式化。字串是程式中最常用的資料型別之一,舉凡顯示訊息、處理文字資料都靠它。Python 的字串功能非常強大,本篇先掌握基礎與 f-string,常用的字串方法(split、join、strip 等)會在第二階段詳細介紹。
建立字串
單引號或雙引號都可以,三引號用於多行字串:
s1 = 'Hello'
s2 = "World"
s3 = """第一行
第二行"""
print(s1, s2)
print(s3)
執行輸出:
Hello World
第一行
第二行
字串中若包含引號,可用另一種引號包裹,或使用跳脫字元 \:
print("It's ok")
print('It\'s ok')
執行輸出:
It's ok
It's ok
字串索引與長度
字串中每個字元都有位置編號(索引),從 0 開始,負數代表從尾端數回來。len() 取得字串長度:
s = "Python"
print(s[0]) # 第一個字元
print(s[-1]) # 最後一個字元
print(len(s)) # 字串長度
執行輸出:
P
n
6
f-string 格式化
f-string 是 Python 把變數嵌入字串的標準寫法:字串前加 f,用 {} 包住變數或運算式:
name = "小明"
score = 87.5
print(f"{name} 的成績是 {score} 分")
print(f"明年成績目標:{score + 5} 分") # 大括號內可以放運算式
執行輸出:
小明 的成績是 87.5 分
明年成績目標:92.5 分
f-string 還支援格式控制,常用的格式如下:
| 格式 | 說明 | 範例 | 結果 |
|---|---|---|---|
{x:.2f} | 小數點後 2 位 | f"{3.14159:.2f}" | 3.14 |
{x:,} | 千分位 | f"{1234567:,}" | 1,234,567 |
{x:>8} | 靠右對齊,寬度 8 | f"{'ab':>8}" | ab |
{x:08d} | 補零至 8 位數 | f"{42:08d}" | 00000042 |
{x:.0%} | 百分比 | f"{0.875:.0%}" | 88% |
price = 1234567.891
print(f"總金額:{price:,.2f} 元")
執行輸出:
總金額:1,234,567.89 元
字串是不可變的(Immutable)
Python 字串建立後不能修改單一字元,只能產生新字串:
s = "Python"
# s[0] = "J" # 這行會報錯 TypeError
s = "J" + s[1:] # 正確做法:組出一個新字串
print(s)
執行輸出:
Jython
常見錯誤
1. TypeError: can only concatenate str (not “int”) to str
字串與數字直接用 + 串接("分數:" + 90)。改用 f-string(f"分數:{90}")或先 str(90) 轉型。
2. IndexError: string index out of range
索引超出字串長度,例如 "abc"[5]。記得索引從 0 開始,最後一個字元是 len(s) - 1,或直接用 s[-1]。
3. SyntaxError: unterminated string literal
引號沒有成對閉合,或想在單引號字串裡直接放單引號。檢查引號配對,必要時用跳脫字元 \'。
總結
Python 字串用單雙引號建立、索引從 0 開始、內容不可變;變數嵌入一律用 f-string,搭配 :.2f、:, 等格式控制可以應付絕大多數輸出需求。下一篇我們學習程式與使用者互動的方式:輸入與輸出。