字串
字串 (str)
我們稱任何一個符號叫做 字元,而字元的序列就叫 字串,不過在 Python 中沒有真正的字元,一個字元請大家把它當作長度為 1 的字串,看以下範例:
>>> string = ''
>>> string_a = 'h'
>>> string_b = 'ello'
>>> string_a + string_b
'hello'
''
(這種沒有內容的字串,我們稱為空字串)、'h'
、'ello'
、'hello'
都是字串,長度分別為 0、1、4、和 5,字串必須以 成對的引號 括住,不論是單引號或是雙引號都可以,例如 'hello'
和 "hello"
是等價的。
這個機制能夠方便我們寫出含有引號的字串如:
string_c = "It's a good day!"
string_d = 'My name is "dokelung".'
而加號 (+
) 對於字串型態而言並非加法而是串接,所以string_a + string_b
的結果是'hello'
。
文件字串 (doc string)
另外,我們也可以用 三雙引號 ("""
) 或 三單引號 ('''
) 來製造跨行的字串:
string_e = """
today is
a good day!
"""
print(string_e)
我們會發現,使用三引號製造出來的字串不僅能跨行,還可以保留它字面上的形式,比如說第一行的 today 前面有 4 個空白,第二行的 a 前面有 1 個 tab
縮排等。讀者們可以自行製造幾個這樣的字串並用 print
印出來看看。對了!這樣的字串有個特別的名字叫做 doc string,文件字串。
之所以這種字串叫做文件字串,是因為該種字串常出現在類別或函式定義中來說明用途跟使用的方式,用以作為說明文件。
跳脫字元
在字串中,還有一群很特殊的字元叫作 跳脫字元(escape charater),這些字元通常代表著一些效果而非符號,比如說:
print 'hello world\n'
我們會發現,\n
讓我們多換了一行,這裡的 \n
跳脫了字串,跳脫了符號,所以才有這樣的名字。
跳脫字元通常都由一個倒斜線加上其他符號組成,所以若要印出倒斜線本身,我們得使用雙倒斜線以免誤會。
下表列出一些常見的跳脫字元:
跳脫字元 | 說明 |
---|---|
\ | 倒斜線 |
\' | 單引號 |
\" | 雙引號 |
\a | 鈴響 |
\b | 退格 |
\n | 換行 |
\t | 縮排 |
編碼
關於字串我們還有最後一個問題,我們可以使用非英文的字串嗎?答案是可以的,Python3 全面支援 Unicode 編碼。