Python 處理字串資料

2018-07-25 11:39 更新

什么是字串?

Python 使用變數(shù)章節(jié)中,我們使用了 input 函式來讀取使用者的輸入,而 input 函式可以傳入一個 字串 作為顯示在屏幕上的提示訊息。字串資料可以是以單引號(')或雙引號(")包起來的 文字資料 ,相對于數(shù)值資料,字串就是用來表示文字的資料。

字串資料也可以儲存于變數(shù)中:

x = 'Hello, world'
print x

單引號及雙引號

在 Python 中,使用單引號(')或雙引號(")包起來的資料都是字串。然而,以單引號包起來的字串,如果在字串資料中遇到單引號時,則必須以 \ 來跳脫(escape)處理,避免被誤認為字串結(jié)束。

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

產(chǎn)生重復(fù)字串

字串資料可以與整數(shù)進行 * 的運算,這表示要將字串重復(fù)幾次:

x = 'Cat'
print x * 3

這樣屏幕會輸出 CatCatCat

取出字串部份內(nèi)容

想要取出字串部份的內(nèi)容,不管是單一字元,或是一段范圍的字串,可以使用 [] 運算子來操作:

x = 'Hello, World.'
print x[7]
print hello[0:6]

這段程式碼會分別在屏幕上印出 "W" 及 "Hello,"。字串的索引位置是*從 0 開始,所以 x[7] 表示要取出 x 這個字串的*第8個字元,也就是 W;而取范圍時只需要設(shè)定左邊界及右邊界,要注意的是,字串只會取至右邊界前一個字元,并不包含右邊界,于是 [0:6] 就是從第 1 個字元取到第 6 個字元,并不會包含 x[6]。

[] 運算子的索引也可以使用負整數(shù),也就是從字串最右邊開始算索引:

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 版里,字串預(yù)設(shè)是以 ASCII 編碼儲存,如果要以 unicode 編碼來儲存字串,只需要在字串前面加上一個 u 作為前置字串:

x = u'Hi,\u0020Eric'
print x

這就會印出 "Hi, Eric"

Python 3 之后,字串預(yù)設(shè)都是以 unicode 儲存

試試看

  • 試試看在字串中使用 \n\t 有什么效果。
  • u'Hi,\u0020Eric' 的字串長度為何?那 'Hi\nEric' 呢?

下一步

在取出部份字串時,我們使用了 [] 運算子來操作,這是把字串當(dāng)作「一串文字」來看待,所以可以用索引的方式取出字串。在 Python 中有一個基本處理資料的結(jié)構(gòu)--List,可以處理排列在一起的數(shù)值或文字資料,在下一章節(jié)中將會介紹如何使用 Python 中的 List 及 Tuple。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號