字串 (str)
什麼是字串?
在 Python 中,字串(str
)是一種用來表示文字的資料型態。字串可以包含字母、數字、符號等,並且可以使用單引號 ' '
或雙引號 " "
來表示。
字串的使用方式
1. 建立字串
可以使用單引號或雙引號來建立字串。
2. 字串連接
可以使用 +
運算符來將兩個字串連接起來。
3. 字串重複
可以使用 *
運算符來重複字串。
4. 字串的索引與切片
可以使用索引來訪問字串中的單個字符,索引從 0
開始。使用切片可以擷取字串中的一部分。
5. 字串的方法
字串有許多內建的方法,可以用來操作字串。
text = "hello world"
print(text.upper()) # 'HELLO WORLD'
print(text.capitalize()) # 'Hello world'
print(text.replace("world", "Python")) # 'hello Python'
6. 字串格式化
Python 提供了多種方式來格式化字串,最常用的是 f-string
或 format()
方法。
name = "Alice"
age = 25
# 使用 f-string
info = f"My name is {name} and I am {age} years old."
print(info) # 輸出: My name is Alice and I am 25 years old.
# 使用 format()
info = "My name is {} and I am {} years old.".format(name, age)
print(info) # 輸出: My name is Alice and I am 25 years old.
範例
name = "Alice"
greeting = f"Hello, {name}!"
print(greeting) # 輸出: Hello, Alice!
quote = "Python is fun"
uppercase_quote = quote.upper()
print(uppercase_quote) # 輸出: PYTHON IS FUN
總結
字串在 Python 中是一個非常常用的資料型態,用來表示文字數據。字串可以進行連接、切片、格式化等操作,並且有多種內建方法可以方便地處理文字。
補充資料
補充說明一下上面提到過但沒有細講的東西。
跳脫字元
Escape Sequence | 說明 |
---|---|
\newline | 接在字串最後的反斜線(\)會被省略 |
\\ | 反斜線(\) |
\' | 單引號(') |
\" | 雙引號(") |
\a | ASCII Bell (BEL) |
\b | ASCII Backspace (BS) |
\f | ASCII Formfeed (FF) |
\n | ASCII Linefeed (LF) |
\r | ASCII Carriage Return (CR) |
\t | ASCII Horizontal Tab (TAB) |
\v | ASCII Vertical Tab (VT) |
\ooo | Character with octal value ooo |
\xhh | Character with hex value hh |
\N{name} | Character named name in the Unicode database |
\uxxxx | Character with 16-bit hex value xxxx |
\Uxxxxxxxx | Character with 32-bit hex value xxxxxxxx |
Indexing 及 Slicing
字串可被當成一串字元的組合,從而很容易地使用索引及切片來讀取字串的內容。
字串內容 | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' |
---|---|---|---|---|---|---|---|---|---|---|
正向索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
反向索引 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
字串格式化
參考:
傳統作法
Name = 'Victor'
A = 10
B = 3.14
# 方法 1
print('Name=' + Name + ': A=' + str(A) + '; B=' + str(B))
# 方法 2
print('Name=%s: A=%d; B=%d' % (Name, A, B))
print('Name=%s: A=%d; B=%f' % (Name, A, B))
print('Name=%s: A=%d; B=%3.5f' % (Name, A, B))
Python 3 作法
print('Name={0}: A={1}; B={2}'.format(Name, A, B))
print('Name={}: A={}; B={}'.format(Name, A, B))
print('Name={name}: A={A}; B={B}'.format(name=Name, A=A, B=B))
f-string (Python 3.5 之後)
關於編碼(Encoding)
什麼是 Unicode?
什麼是 Encode()?
將字串轉換成特定格式(如UTF-8)的 bytes,以便於儲存或網路傳輸。
什麼是 Decode()?
將特定格式的 bytes,轉換回字串以便於顯示。