Python 处理字串资料
什么是字串?
在Python 使用变数章节中,我们使用了 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。