什麼是字串?
在使用變數章節中,我們使用了 input
函式來讀取使用者的輸入,而 input
函式可以傳入一個 字串 作為顯示在螢幕上的提示訊息。字串資料可以是以單引號(')或雙引號(")包起來的 文字資料 ,相對於數值資料,字串就是用來表示文字的資料。
字串資料也可以儲存於變數中:
x = 'Hello, world'
print x
單引號及雙引號
在 Python 中,使用單引號('
)或雙引號("
)包起來的資料都是字串。然而,以單引號包起來的字串,如果在字串資料中遇到單引號時,則必須以 \
來跳脫(escape)處理,避免被誤認為字串結束。
x = 'I\'m Eric.'
print x
這段程式碼就會正確地印出 "I'm Eric.
",以此類推,若是在雙引號包起來的字串,碰到雙引號時也必須以 \
跳脫。也因為 \
被用來作為跳脫字元處理,所以若是字串中有 \
字元時,就需要再用一個 \
跳脫:
file_path = 'C:\\Documents and Settings\\ericsk\\test.dat'
print file_path
這段程式碼就會印出「C:\Documents and Settings\ericsk\test.dat
」。如果不想將 \
作為跳脫字元使用,可以在字串前加上 r
前置字元,上面的程式碼就可以改成:
file_path = r'C:\Documents and Settings\ericsk\test.dat'
print file_path
效果也是一樣。
字串的運算
字串資料也支援下列幾種運算方式:
字串相加
兩個字串資料作相加(+
)的運算,代表將兩個字串資料串接起來:
x = 'Hello, '
y = 'World'
print x+y
這段程式碼會印出 Hello, World
產生重複字串
字串資料可以與整數進行 *
的運算,這表示要將字串重複幾次:
x = 'Cat'
print x * 3
這樣螢幕會輸出 CatCatCat
取出字串部份內容
想要取出字串部份的內容,不管是單一字元,或是一段範圍的字串,可以使用 []
運算子來操作:
x = 'Hello, World.'
print x[7]
print hello[0:6]
這段程式碼會分別在螢幕上印出 "W
" 及 "Hello,
"。字串的索引位置是*從 0 開始,所以 x[7]
表示要取出 x
這個字串的*第8個字元,也就是 W
;而取範圍時只需要設定左邊界及右邊界,要注意的是,字串只會取至右邊界前一個字元,並不包含右邊界,於是 [0:6]
就是從第 1 個字元取到第 6 個字元,並不會包含 x[6]
。
[]
運算子的索引也可以使用負整數,也就是從字串最右邊開始算索引:
x = 'Hello, World.'
print x[-2]
print x[4:-3]
則會印出 "d
" 及 "o, Wor
"。
計算字串長度
如果要計算字串的長度,直接使用 len()
函式就可以了。
x = 'Hello, World.'
print len(x)
就會在螢幕上印出 13
。
Unicode 字串
在 Python 2.x 版裡,字串預設是以 ASCII 編碼儲存,如果要以 unicode 編碼來儲存字串,只需要在字串前面加上一個 u
作為前置字串:
x = u'Hi,\u0020Eric'
print x
這就會印出 "Hi, Eric
"
Python 3 之後,字串預設都是以 unicode 儲存
試試看
- 試試看在字串中使用
\n
,\t
有什麼效果。 u'Hi,\u0020Eric'
的字串長度為何?那'Hi\nEric'
呢?
下一步
在取出部份字串時,我們使用了 []
運算子來操作,這是把字串當作「一串文字」來看待,所以可以用索引的方式取出字串。在 Python 中有一個基本處理資料的結構--List,可以處理排列在一起的數值或文字資料,在下一章節中將會介紹如何使用 Python 中的 List 及 Tuple。