什麼是字串?

使用變數章節中,我們使用了 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

results matching ""

    No results matching ""