字串(String)是「用文字跟電腦溝通」的基礎單位:它可以是一個字、一句話,甚至整段文章。
把字串想成「由字元組成的序列」——就像一個列表:可用索引存取、用切片擷取片段、用 + 連接組句,用 len() 計數長度,必要時用轉義字元處理引號、換行與特殊符號。
本篇用最實用的幾個操作,帶你把「看到的文字」變成「可操作的資料」。
什麼是字串 (Strings)?
在 Python 中,字串 (String) 是用來儲存文字資料的資料型態,可以包含:
- 單字、句子或整個段落
 - 任何字母、數字、符號和空格
 - 用單引號 
'...'或雙引號"..."包圍的字符序列 
字串是 Python 中最常用的資料型態之一,因為文字處理在程式設計中非常重要。
我們將學習如何選取字串中的字符、切片字串、搜尋字串、迭代字串以及在條件語句中使用字串。
字串就像串列 (Lists)!
字串 = 字符串列
字串可以視為字符的串列 (List),每個字符都有一個索引 (index)
索引從 0 開始
第一個字符的索引是 0,第二個字符的索引是 1,依此類推
必須使用整數索引
字串索引必須是整數,使用非整數會導致 TypeError
favorite_fruit = "blueberry"
print(favorite_fruit[0]) # 輸出: b
print(favorite_fruit[1]) # 輸出: l
字串索引 (String Indexing)
字串索引從 0 開始計數
訪問單個字符
favorite_fruit = "blueberry"
first_char = favorite_fruit[0]  # b
second_char = favorite_fruit[1]  # l
last_char = favorite_fruit[8]  # y
    
錯誤示例:非整數索引
# 這會導致錯誤
print(favorite_fruit[1.5])
# TypeError: string indices 
# must be integers
字串切片 (String Slicing)
切片 (Slicing) 允許我們從字串中提取一部分,創建一個子字串 (Substring)。
語法: string[first_index:last_index]
- 包含 first_index 位置的字符
 - 不包含 last_index 位置的字符
 - 省略 first_index 表示從字串開頭開始
 - 省略 last_index 表示切到字串結尾
 
favorite_fruit = "blueberry"
print(favorite_fruit[4:6]) # 輸出: be
print(favorite_fruit[:4]) # 輸出: blue
print(favorite_fruit[4:]) # 輸出: berry
字串連接 (Concatenation)
連接字串時,Python 不會自動添加空格,必須手動加入:
# 沒有空格
sentence = "My favorite fruit is" + favorite_fruit
# 輸出: My favorite fruit isblueberries
# 手動添加空格
sentence = "My favorite fruit is " + favorite_fruit
# 輸出: My favorite fruit is blueberries
字串長度 (String Length)
使用 len() 函數可以計算字串中的字符數量:
favorite_fruit = "blueberry"
length = len(favorite_fruit)
print(length)  # 輸出: 9
    
空格也會被計入長度:
fruit_sentence = "I love blueberries"
print(len(fruit_sentence))  # 輸出: 18
    
使用 len() 訪問最後一個字符
# 錯誤方式 - 索引超出範圍
last_char = favorite_fruit[len(favorite_fruit)]
# IndexError: string index out of range
# 正確方式
last_char = favorite_fruit[len(favorite_fruit)-1]
print(last_char)  # 輸出: y
    
獲取末尾的多個字符:
last_chars = favorite_fruit[len(favorite_fruit)-4:]
print(last_chars) # 輸出: erry
負數索引 (Negative Indices)
負數索引 (Negative Indices) 從字串末尾向前計數,是訪問字串末尾字符的簡便方法:
string_name[-1]是字串的最後一個字符string_name[-2]是字串的倒數第二個字符- 依此類推…
 
favorite_fruit = 'blueberry'
print(favorite_fruit[-1])   # 輸出: 'y'
print(favorite_fruit[-2])   # 輸出: 'r'
print(favorite_fruit[-3:])  # 輸出: 'rry'
負數索引使我們無需使用 len() 就能方便地訪問字串末尾的字符。
轉義字符 (Escape Characters)
什麼是轉義字符?
轉義字符是用來表示特殊字符的方法,以反斜線  開頭。
常見用途
在字串中包含引號、特殊符號或控制字符。
常見轉義字符
"– 雙引號'– 單引號\– 反斜線n– 換行t– 製表符
# 不使用轉義字符會出錯
# favorite_fruit_conversation = "He said, "blueberries are my favorite!""
# 使用轉義字符
favorite_fruit_conversation = "He said, "blueberries are my favorite!""
print(favorite_fruit_conversation)
總結
- 字串就是字元序列:索引從 
0開始;只能用整數索引(否則TypeError)。 - 切片規則:
s[i:j]含頭不含尾;s[:i]從開頭、s[i:]到結尾;負索引如s[-1]取最後一個。 - 長度:
len(s)會把空白一起算進去;最後一個字元是s[len(s)-1]或更直覺的s[-1]。 - 連接:
"A" + "B"不會自動加空格,需要自己補"A " + "B"。 - 轉義字元:用 
"、'、\、n、t處理引號、反斜線、換行、縮排。 - 小提醒:某些表情符號或合字可能由多個程式碼點組成,視覺上一個字元,長度可能 > 1——處理多語字元時要留意。