Python 字串(String) (12):把文字當資料——索引、切片、長度、連接與轉義

字串(String)是「用文字跟電腦溝通」的基礎單位:它可以是一個字、一句話,甚至整段文章。

把字串想成「由字元組成的序列」——就像一個列表:可用索引存取、用切片擷取片段、用 + 連接組句,用 len() 計數長度,必要時用轉義字元處理引號、換行與特殊符號。

本篇用最實用的幾個操作,帶你把「看到的文字」變成「可操作的資料」。

Python code showing string indexing with a fruit example

什麼是字串 (Strings)?

在 Python 中,字串 (String) 是用來儲存文字資料的資料型態,可以包含:

  • 單字、句子或整個段落
  • 任何字母、數字、符號和空格
  • 用單引號 '...' 或雙引號 "..." 包圍的字符序列

字串是 Python 中最常用的資料型態之一,因為文字處理在程式設計中非常重要。

我們將學習如何選取字串中的字符、切片字串、搜尋字串、迭代字串以及在條件語句中使用字串。

字串就像串列 (Lists)!

字串 = 字符串列

字串可以視為字符的串列 (List),每個字符都有一個索引 (index)

索引從 0 開始

第一個字符的索引是 0,第二個字符的索引是 1,依此類推

必須使用整數索引

字串索引必須是整數,使用非整數會導致 TypeError

favorite_fruit = "blueberry"
print(favorite_fruit[0]) # 輸出: b
print(favorite_fruit[1]) # 輸出: l
diagram showing string indexing of blueberry with each character numbered

字串索引 (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
diagram showing negative indexing in Python strings with -1 starting from the end

負數索引 (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"
  • 轉義字元:用 "'\nt 處理引號、反斜線、換行、縮排。
  • 小提醒:某些表情符號或合字可能由多個程式碼點組成,視覺上一個字元,長度可能 > 1——處理多語字元時要留意。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *