Python code showing string indexing with a fruit example

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——處理多語字元時要留意。

發佈留言

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

High Quality

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.

Fast Delivery

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.

Best Warranty

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.