【python學習手冊(第3版)】第7章字符串

常見字符串常量和表達式

操作符描述
s1 = ' '空字符串
s2 = "spam's"雙引號
block = """..."""三重引號塊
s3 = r'\temp\spam'Raw字符串
s4 = u'spam'Unicode字符串
s1 + s2,s2 * 3合併,重複
s2[i],s2[i:j],len(s2)索引,分片,求長度
"a %s parrot" % type字符串格式化
s2.find('pa')搜索
s2.rstrip()移除空格
s2.replace('pa','xx')替換
s1.split(' , ')用佔位符分隔
s1.isdigit()測試字符串內容是否爲數字,返回bool值
s1.lower()轉換爲小寫字母
for x in s2迭代
'spam' in s2成員關係

單雙引號字符串是一樣的,"knight's"也可以表示爲'knight\'s'或者"knight\"s"

用轉義序列代表特殊字節

轉義序列:反斜槓+特殊字節編碼。例如,這裏有五個字符的字符串,其中嵌入了一個換行符'\n'和一個製表符'\t'

>>>s = 'a\nb\tc'

字符串反斜線字符

轉義意義
\\反斜線(保留\)
\'單引號(保留 ' )
\"雙引號(保留 " )
\a響鈴(BEL)
\b退格(BS)
\f換頁(FF)
\n換行(LF)
\r返回(CR)
\t水平製表(HT) 
\v垂直製表(VT)
\uhhhhUnicode 16位的十六進制值
\UhhhhUnicode 32位的十六進制值
\xhh十六進制值
\000八進制值
\0空字符(NULL)

字符串抑制轉義

在字符串前面增加‘r’或是加入轉義字符,如下所示

myfile = open('C:\new\text.dat','w')
myfile = open(r'C:\new\text.dat','w')    #方法一
myfile = open('C:\\new\\text.dat','w')   #方法二

索引和分片

偏移量是從0開始的,負偏移看作是從結束處反向計數

>>> S = 'spam'
>>> S[0], S[-2]               # 索引
('s', 'a')
>>> S[1:3], S[1:], S[:-1]     # 分片
('pa', 'pam', 'spa')

擴展分片:第三個值表示步長

>>> S = 'abcdefghijklmnop'
>>> S[1:10:2]
'bdfhj'
>>> S[::2]
'acegikmo'

>>> S = 'hello'
>>> S[::-1]
'olleh'

>>> S = 'abcedfg'
>>> S[5:1:-1]
'fdec'

字符串的修改

在第4章我們提到過,字符串本身是不支持修改的,我們用如下的方法來進行修改:

>>> S = 'spam'
>>> S[0] = "x"
Raises an error!

>>> S = S + 'SPAM!'
>>> S
'spamSPAM!'
>>> S = S[:4] + 'Burger' + S[-1]
>>> S
'spamBurger!'

>>> S = 'splot'
>>> S = S.replace('pl', 'pamal')
>>> S
'spamalot'

字符串轉列表,列表轉字符串

>>> S = 'spammy'
>>> L = list(S)
>>> L
['s', 'p', 'a', 'm', 'm', 'y']

>>> L[3] = 'x'                         # Works for lists, not strings
>>> L[4] = 'x'
>>> L
['s', 'p', 'a', 'x', 'x', 'y']

>>> S = ''.join(L)
>>> S
'spaxxy'

字符串方法實例:文本解析

>>> line = 'aaa bbb ccc'
>>> col1 = line[0:3]
>>> col3 = line[8:]
>>> col1
'aaa'
>>> col3
'ccc'

>>> line = 'aaa bbb ccc'
>>> cols = line.split()
>>> cols
['aaa', 'bbb', 'ccc']

>>> line = 'bob,hacker,40'
>>> line.split(',')
['bob', 'hacker', '40']

>>> line = "i'mSPAMaSPAMlumberjack"
>>> line.split("SPAM")
["i'm", 'a', 'lumberjack']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章