Python 字串

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}靠右對齊,寬度 8f"{'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:, 等格式控制可以應付絕大多數輸出需求。下一篇我們學習程式與使用者互動的方式:輸入與輸出。

延伸閱讀