標籤:
字串immutable, 所以不能只改變一個字串的一個字元或者子串,但可以通過拼湊一箇舊串的各個部分來得到一個新串。
1 字串操作符
標準類型操作符和標準序列操作符略過
字串操作符
格式化操作符( % )
符 號 |
描述 |
%c |
格式化字元及其ASCII碼 |
%s |
格式化字串 |
%d |
格式化整數 |
%u |
格式化無符號整型 |
%o |
格式化無符號八位元 |
%x |
格式化無符號十六進位數 |
%X |
格式化無符號十六進位數(大寫) |
%f |
格式化浮點數字,可指定小數點後的精度 |
%e |
用科學計數法格式化浮點數 |
%E |
作用同%e,用科學計數法格式化浮點數 |
%g |
根據值的大小決定使用%f活%e |
%G |
作用同%g,根據值的大小決定使用%f活%e |
%p |
用十六進位數格式化變數的地址 |
原生字串( r )
Unicode字串( u )
逸出字元
逸出字元 |
描述 |
\(在行尾時) |
續行符 |
\\ |
反斜線符號 |
\‘ |
單引號 |
\" |
雙引號 |
\a |
響鈴 |
\b |
退格(Backspace) |
\e |
轉義 |
\000 |
空 |
\n |
換行 |
\v |
縱向定位字元 |
\t |
橫向定位字元 |
\r |
斷行符號 |
\f |
換頁 |
\oyy |
八位元yy代表的字元,例如:\o12代表換行 |
\xyy |
十進位數yy代表的字元,例如:\x0a代表換行 |
\other |
其它的字元以普通格式輸出 |
2. 字串內建函數
標準類型內建函數略過
序列類型內建函數樣本幾個
>>> max(‘abc‘),‘c‘>>> min(‘abc‘)‘a‘>>> for i, j in enumerate(‘hello‘):print i, j>>> zip(‘hello‘, ‘world‘)[(‘h‘, ‘w‘), (‘e‘, ‘o‘), (‘l‘, ‘r‘), (‘l‘, ‘l‘), (‘o‘, ‘d‘)]
字串類型函數
1.字串串連
①:+, +=
②:‘‘.join()
>>> lis = [‘apple‘,‘banana‘,‘china‘]>>> ‘-‘.join(lis) apple-banana-china >>> ‘‘.join(lis) applebananachina>>> ‘-‘.join(‘hello‘) h-e-l-l-o
2.字串截取
①string[x:y]
②:‘‘.split()
>>> string = ‘h-e-l-l-o‘>>> string.split(‘-‘) [‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘] >>> string.split(‘-‘,2) [‘h‘, ‘e‘, ‘l-l-o‘]
③strip()
#s為字串,rm為要刪除的字元序列#s.strip(rm) 刪除s字串中開頭、結尾處,位於 rm刪除序列的字元#s.lstrip(rm) 刪除s字串中開頭處,位於 rm刪除序列的字元#s.rstrip(rm) 刪除s字串中結尾處,位於 rm刪除序列的字元ps: 當rm為空白時,預設刪除空白符(包括‘\n‘, ‘\r‘, ‘\t‘, ‘ ‘)>>> a = ‘ 123‘>>> a.strip()‘123‘>>> a = ‘123abc‘>>> a.strip(‘12‘)‘3abc‘>>> a.strip(‘21‘)‘3abc‘
3.字串的尋找與替換
① find(), rfind()
字串中找到substring則返回索引(如果字串中有多個結果則返回第一次出現的索引),沒找到返回-1
>>> string = ‘I am Fishhat‘>>> string.find(‘F‘) 5>>> find(‘f‘) -1 >>> print string.find(‘h‘,5,-1) #返回找到的第一個的索引8 >>> print string.rfind(‘h‘) #rfind()從尾部開始找9
②替換 replace()
>>> string = ‘AAAAABBBBBDDDDD‘>>> string.replace(‘D‘,‘C‘) #把字串中所有的D替換為C‘AAAAABBBBBCCCCC‘>>> string.replace(‘A‘,‘a‘,3) #替換字串中的3個A為a‘aaaAABBBBCCCCC‘ #replace()函數的操作不會影響原字串.只是拷貝原字串然後進行操作而已
③startswith() 函數和 endswith() 函數
>>> string = ‘fishhat‘>>> string.startswith(‘fi‘)True>>> string.startswith(‘sh‘,2,4)True>>> string.endswith(‘hat‘)True>>> string.endswith(‘ha‘,4,6)True④string.count(sub, start= 0,end=len(string))string = ‘hello‘
4.字串對齊:
①:string.center(int[,str])
>>> string = ‘Fishhat‘>>> string.center(55)‘ Fishhat ‘>>> string.center(55,‘*‘)‘************************Fishhat************************‘
②:string.ljust(int[,str])
>>> string.ljust(55)‘Fishhat ‘>>> string.string.ljust(55,‘*‘)‘Fishhat************************************************‘
③:string.rjust(int[,str])
>>> string.ljust(55)‘ Fishhat‘>>> string.ljust(55,‘*‘)‘************************************************Fishhat‘
④:%(int)s
>>> ‘% 55s‘ % string‘ Fishhat‘>>> ‘% -55s‘ % string
5.字串其他處理:
string.capitalize() #把字串的第一個字元大寫string.upper() #轉換 string 中的小寫字母為大寫string.lower() #轉換 string 中所有大寫字元為小寫.
3. Unicode字串
# coding: utf8s1 = ‘漢‘print repr(s1)print len(s1)u1 = u‘漢‘print repr(u1)print len(u1)s2 = u1.encode(‘utf8‘)print repr(s2)u2 = s2.decode(‘utf8‘)print repr(u2)# 對unicode進行解碼時錯誤的s3 = u1.decode(‘utf8‘)# 對str進行編碼也是錯誤的u3 = s1.encode(‘utf8‘)
2015-05-24
python之字串