Python基础概念_8_字符串处理
字符串處理
9 字符串處理
9.1 簡(jiǎn)介
在前面的章節(jié)里我們介紹了常用的數(shù)據(jù)類型,其中字符串并沒有單獨(dú)拎出來講,那么接下來我們將重點(diǎn)講下它。字符串一般是通過引號(hào)('或")包裹起來的,因?yàn)樗胸S富的函數(shù)而且經(jīng)常使用,所以我要 詳細(xì)認(rèn)識(shí)下。
?
字符串的基本操作這里不再細(xì)述,詳見基礎(chǔ)概念里的字符串部分。這里講些字符串里的處理方法。
9.2 轉(zhuǎn)義符
字符串里有些特殊字符,需要轉(zhuǎn)義才能還原其本來的意義。如下表列舉了常見的轉(zhuǎn)義符:
?
| 轉(zhuǎn)義字符 | 含義 | 備注 |
| \(在行尾時(shí)) | 續(xù)行符 | \ ... print('hello') 執(zhí)行結(jié)果: hello |
| \\ | 反斜杠符號(hào) | print('\\') 執(zhí)行結(jié)果: \ |
| \' | 單引號(hào) | print('his\'name is Tom!') 執(zhí)行結(jié)果: his'name is Tom! |
| \" | 雙引號(hào) | print("his\"name is Tom!") 執(zhí)行結(jié)果: his"name is Tom! |
| \a | 響鈴 | print('\a') 執(zhí)行結(jié)果: 一個(gè)滴的聲音。 |
| \b | 退格(Backspace) | print('這是個(gè)退格鍵\b退格') 執(zhí)行結(jié)果: 這是個(gè)退格退格 |
| \e | 轉(zhuǎn)義 | import re re.findall('\w','abcdefghijklmnopqrstuvwxyz') 執(zhí)行結(jié)果: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', ?'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] |
| \000 | 空 | print(ascii("\000")) '\x00' print("\000") 執(zhí)行結(jié)果: ? 注:這里輸出個(gè)空。 ? |
| \n | 換行 | print("這是個(gè)\n空行") 執(zhí)行結(jié)果: 這是個(gè) 空行 |
| \v | 縱向制表符 | ? |
| \t | 橫向制表符 | print("這是個(gè)\t制表符") 這是個(gè)? 制表符 |
| \r | 回車 | f = open("G:\\test.txt", "w") num = f.write( " Python 是一個(gè)非常好的語言。\r趣味編程是個(gè)優(yōu)質(zhì)的團(tuán)隊(duì)" ) # 關(guān)閉打開的文件 f.close() f = open("G:\\test.txt", "r") print(f.read()) f.close() 執(zhí)行結(jié)果: Python 是一個(gè)非常好的語言。 趣味編程是個(gè)優(yōu)質(zhì)的團(tuán)隊(duì) |
| \f | 換頁 | ? |
| \oyy | 八進(jìn)制數(shù),yy代表的字符 | f = open("G:\\test.txt", "w") num = f.write( " Python 是一個(gè)非常好的語言。\f趣味編程是個(gè)優(yōu)質(zhì)的\o12團(tuán)隊(duì)" ) print(num) # 關(guān)閉打開的文件 f.close() f = open("G:\\test.txt", "r") print(f.read()) f.close() 執(zhí)行結(jié)果: Python 是一個(gè)非常好的語言。趣味編程是個(gè)優(yōu)質(zhì)的 團(tuán)隊(duì) 注:\x0a是時(shí)間制的10,所以是換行。 |
| \xyy | 十六進(jìn)制數(shù),yy代表的字符,例如:\x0a代表換行 | 同理上面的\o12替換成\x0a會(huì)達(dá)到同樣的目的。 注:\x0a是時(shí)間制的10,所以是換行。 |
?
?
9.3 字符串運(yùn)算符
字符串可以通過一些運(yùn)算符號(hào)實(shí)現(xiàn)對(duì)字符串的拼接、組裝等操作。如下我們通過一個(gè)表格來了解下:
| 操作符 | 描述 | 代碼示例 |
| + | 字符串連接 | a= 'hello' b='xiaodao' a+b 執(zhí)行結(jié)果: helloxiaodao |
| * | 重復(fù)輸出字符串 | a= 'Hello' a*2 執(zhí)行結(jié)果: HelloHello |
| [] | 通過索引獲取字符串中字符,這里下表從0開始。 | a= 'hello' a[1] 執(zhí)行結(jié)果:? e |
| [ : ] | 截取字符串中的一部分,這里下表遵循左閉又開原則即右邊的下表取不到。 | a= 'hello' a[1:4] 執(zhí)行結(jié)果:? ell |
| in | 如果字符串中包含給定的字符返回 True,反之為False | a='hello' 'h' in a 執(zhí)行結(jié)果: True |
| not in | 如果字符串中不包含給定的字符返回 True,反之為False | a='hello' 'm' not in a 執(zhí)行結(jié)果: True |
| r/R | 輸出原始字符串,這里使用了該符號(hào)后即便字符串里有特殊字符仍不會(huì)轉(zhuǎn)義。保留原來的樣子。 | print(r'\n') 執(zhí)行結(jié)果:\n print(r'\\n') 執(zhí)行結(jié)果:\\n print('\\n') 執(zhí)行結(jié)果:\n print('\n') 執(zhí)行結(jié)果: ? |
| % | 格式字符串 | print ("我叫 %s 今年 %d 歲!" % ('小明', 10.5)) 執(zhí)行結(jié)果: 我叫 小明 今年 10 歲! |
| 操作符 | 描述 | 實(shí)例 |
?
9.4 字符串格式輸出
字符串可以按照指定的格式輸出,比如
| 符?? 號(hào) | 描述 | 示例 |
| %c | 格式化字符及其ASCII碼值 | print ("我叫 %c" % ('三')) 執(zhí)行結(jié)果: 我叫 三 |
| %s | 格式化字符串 | print ("我叫 %s" % ('小三,我是%s方式輸出的!')) 執(zhí)行結(jié)果: 我叫 小三,我是%s方式輸出的! |
| %d | 格式化整數(shù) | print ("我叫 %s 今年 %d 歲!" % ('小明', 10)) 執(zhí)行結(jié)果: 我叫 小明 今年 10 歲! |
| %u | 格式化無符號(hào)整型 | print ("我叫 %s 今年 %u 歲!" % ('小明', 10.00)) 執(zhí)行結(jié)果: 我叫 小明 今年 10 歲! |
| %o | 格式化無符號(hào)八進(jìn)制數(shù) | print ("我叫 %s 今年是八進(jìn)制的 %o 歲!" % ('小明', 10)) 執(zhí)行結(jié)果: 我叫 小明 今年是八進(jìn)制的 12 歲! |
| %x | 格式化無符號(hào)十六進(jìn)制數(shù) | print ("我叫 %s 今年是八進(jìn)制的 %x 歲!" % ('小明', 10)) 執(zhí)行結(jié)果: 我叫 小明 今年是八進(jìn)制的 ?a歲! |
| %X | 格式化無符號(hào)十六進(jìn)制數(shù),是大寫方式。 | print ("我叫 %s 今年是八進(jìn)制的 %X 歲!" % ('小明', 10)) 執(zhí)行結(jié)果: 我叫 小明 今年是八進(jìn)制的 ?A歲! |
| %f | 格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度 | print ("我叫 %s 今年是浮點(diǎn)表示的 %f 歲!" % ('小明', 10.5)) 執(zhí)行結(jié)果: 我叫 小明 今年是浮點(diǎn)表示的 10.500000 歲! |
| %e | 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) | print ("我叫 %s 今年是科學(xué)計(jì)算法表示的 %e 歲!" % ('小明', 1e1)) 執(zhí)行結(jié)果: 我叫 小明 今年是科學(xué)計(jì)算法表示的 1.000000e+01 歲! |
| %E | 作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù),是大寫方式。 | print ("我叫 %s 今年是科學(xué)計(jì)算法表示的 %e 歲!" % ('小明', 1E1)) 執(zhí)行結(jié)果: 我叫 小明 今年是科學(xué)計(jì)算法表示的 1.000000E+01 歲! |
| %g | %f和%e的簡(jiǎn)寫 | print ("我叫 %s 今年是科學(xué)計(jì)算法表示的 %g 歲!" % ('小明', 1e1)) 執(zhí)行結(jié)果: 我叫 小明 今年是科學(xué)計(jì)算法表示的 10 歲! |
| %G | %f 和 %E 的簡(jiǎn)寫 | print ("我叫 %s 今年是科學(xué)計(jì)算法表示的 %G 歲!" % ('小明', 1e1)) 執(zhí)行結(jié)果: 我叫 小明 今年是科學(xué)計(jì)算法表示的 10 歲!???? |
?
9.5字符串內(nèi)嵌函數(shù)
Python中內(nèi)嵌了許多常用的函數(shù),我們只要熟悉它們的功能即可輕松完成許多字符串處理工作。以下我們通過表格來認(rèn)識(shí)下這些常用的函數(shù):
?
| 函數(shù)名 | 描述 | 示例 |
| capitalize | capitalize() 功能描述: 將字符串的首字符轉(zhuǎn)為大寫 | mystr='hi man!' print(mystr.capitalize()) 執(zhí)行結(jié)果: Hi man! |
| center | center(width, fillchar) 功能說明: 參數(shù)說明: ?? width:字符串的總寬度。 ?? fillchar:填充字符。 ? | str = "xiao dao bian cheng....wow!!!"; print ("str.center(36, 'a') : ", str.center(36,'a')) str.center(36, 'a') :? aaaxiao dao bian cheng....wow!!!aaaa 注:這里以開頭和結(jié)尾的兩個(gè)a包圍,因?yàn)閟tr本身長度為32. |
| count | count(sub, start= 0,end=len(string)) 返回 sub 在 string 里面出現(xiàn)的次數(shù),如果 start 或者 end 指定則返回指定范圍內(nèi) sub 出現(xiàn)的次數(shù) 參數(shù)說明: ?? sub:搜索的子字符串 ?? start:字符串開始搜索的位置。默認(rèn)為第一個(gè)字符,其索引值為0。 ?? end:字符串中結(jié)束搜索的位置。默認(rèn)為字符串的最后一個(gè)位置。 | mystr='xiaodaobiancheng' print("第3個(gè)位置后a出現(xiàn)的次數(shù)",mystr.count('e',2,len(mystr))) print("第3個(gè)位置后a出現(xiàn)的次數(shù)",mystr.count('a',2,len(mystr))) print("第3個(gè)位置后a出現(xiàn)的次數(shù)",mystr.count('a',3,len(mystr))) 執(zhí)行結(jié)果: 第3個(gè)位置后a出現(xiàn)的次數(shù) 1 第3個(gè)位置后a出現(xiàn)的次數(shù) 3 第3個(gè)位置后a出現(xiàn)的次數(shù) 2 |
| encode | encode(encoding='UTF-8',errors='strict') 功能描述: ? 參數(shù)說明: ?? encoding:要使用的編碼,如: UTF-8。 ?? errors :設(shè)置不同錯(cuò)誤的處理方案。默認(rèn)為 'strict',意為編碼錯(cuò)誤引起一個(gè)UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register_error() 注冊(cè)的任何值。 | mystr = "趣味編程"; str_utf8 = mystr.encode("UTF-8") str_gbk = mystr.encode("GBK")??? print("mystr的內(nèi)容是:"+mystr) print("UTF-8編碼mystr:", str_utf8) print("GBK編碼mystr:", str_gbk)??? print("UTF-8解碼:",str_utf8.decode('UTF-8','strict')) print("GBK解碼:", str_gbk.decode('GBK','strict')) 執(zhí)行結(jié)果: mystr的內(nèi)容是:趣味編程??? UTF-8編碼mystr: b'\xe5\xb0\x8f\xe9\x81\x93\xe7\xbc\x96\xe7\xa8\x8b' GBK編碼mystr: b'\xd0\xa1\xb5\xc0\xb1\xe0\xb3\xcc' UTF-8 解碼: 趣味編程 GBK 解碼: 趣味編程 注:以上是每個(gè)print執(zhí)行的結(jié)果的羅列,每個(gè)print之后都會(huì)有相應(yīng)結(jié)果。 |
| decode | decode(encoding="utf-8", errors="strict") 功能說明: 參數(shù)說明: ?? encoding:要使用的編碼,如”UTF-8″。 ?? errors :設(shè)置不同錯(cuò)誤的處理方案。默認(rèn)為 'strict',意為編碼錯(cuò)誤引起一個(gè)UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register_error() 注冊(cè)的任何值。 | mystr = "趣味編程"; str_utf8 = mystr.encode("UTF-8") str_gbk = mystr.encode("GBK")??? print("mystr的內(nèi)容是:"+mystr) print("UTF-8編碼mystr:", str_utf8) print("GBK編碼mystr:", str_gbk)??? print("UTF-8解碼:",str_utf8.decode('UTF-8','strict')) print("GBK解碼:", str_gbk.decode('GBK','strict')) 執(zhí)行結(jié)果: mystr的內(nèi)容是:趣味編程??? UTF-8編碼mystr: b'\xe5\xb0\x8f\xe9\x81\x93\xe7\xbc\x96\xe7\xa8\x8b' GBK編碼mystr: b'\xd0\xa1\xb5\xc0\xb1\xe0\xb3\xcc' UTF-8 解碼: 趣味編程 GBK 解碼: 趣味編程 注:以上是每個(gè)print執(zhí)行的結(jié)果的羅列,每個(gè)print之后都會(huì)有相應(yīng)結(jié)果。 |
| startswith | startswith(str, beg=0,end=len(string)) 功能說明: 參數(shù)說明: ?? str : 檢測(cè)的字符串。 ?? beg:選參數(shù)用于設(shè)置字符串檢測(cè)的起始位置。 ?? end:可選參數(shù)用于設(shè)置字符串檢測(cè)的結(jié)束位置。 ? | mystr='xiaodaobianchengxngxng' suffix='x' print ("'"+mystr+"'"+"是以x開頭?"+str(mystr.startswith(suffix))) print("'"+mystr+"'"+"的長度是:"+str(len(mystr))) print ("'"+mystr+"'"+"從第17到19位置時(shí)以x開頭?"+str(mystr.startswith(suffix,17,19))) ? 執(zhí)行結(jié)果: 'xiaodaobianchengxngxng'是以x開頭?True 'xiaodaobianchengxngxng'的長度是:22 'xiaodaobianchengxngxng'從第17到19位置時(shí)以x開頭?False |
| endswith | endswith(suffix,start=0,end=len(string)) 功能說明: 判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回True,否則返回False。可選參數(shù)”start”與”end”為檢索字符串的開始與結(jié)束位置。 參數(shù)說明: ?? suffix: 該參數(shù)可以是一個(gè)字符串或者是一個(gè)元素。 ?? start:字符串中的開始位置。 ?? end:字符中結(jié)束位置。 ? | mystr='xiaodaobianchengxngxng' suffix='ng' print (mystr.endswith(suffix)) print(len(mystr)) print (mystr.endswith(suffix, 0, 19)) ? 執(zhí)行結(jié)果: True 22 True |
| expandtabs | expandtabs(tabsize=8) 功能說明: 參數(shù)說明: ?? tabsize:指定轉(zhuǎn)換字符串中的 tab 符號(hào)('\t ')轉(zhuǎn)為空格的字符數(shù)。 ? | mystr='xiaodaobian\tchengxngxng' print ("替換 \\t符號(hào): " +? mystr.expandtabs()) print ("使用16個(gè)空格替換 \\t 符號(hào): " +? mystr.expandtabs(16)) 執(zhí)行結(jié)果: 替換 \t 符號(hào): xiaodaobian???? chengxngxng 使用16個(gè)空格替換 \t 符號(hào): xiaodaobian???? chengxngxng |
| find | find(str, beg=0 end=len(string)) 功能說明: 參數(shù)說明: ?? str :定檢索的字符串 ?? beg :開始索引,默認(rèn)為0。 ?? end :結(jié)束索引,默認(rèn)為字符串的長度。 ? | mystr='xiaodaobiantchengxngxng' str2='ng' print ("'ng'所在索引序號(hào)為:"+str(mystr.find(str2))) print ("'ng'所在索引序號(hào)為:"+str(mystr.find(str2,17))) print ("'ng'所在索引序號(hào)為:"+str(mystr.find(str2,20))) print ("'ng'所在索引序號(hào)為:"+str(mystr.find(str2,30))) ? 執(zhí)行結(jié)果: 'ng'所在索引序號(hào)為:15 'ng'所在索引序號(hào)為:18 'ng'所在索引序號(hào)為:21 'ng'所在索引序號(hào)為:-1 |
| rfind | rfind(str, beg=0,end=len(string)) 功能說明: | mystr='xiaodaobiantchengxngxng' str2='ng' print (mystr.rfind(str2)) 執(zhí)行結(jié)果: 21 |
| index | index(str, beg=0, end=len(string)) 功能說明: 功能類似find()方法,只不過如果str不在字符串中會(huì)報(bào)一個(gè)異常. 參數(shù)說明: ?? str :定檢索的字符串 ?? beg :開始索引,默認(rèn)為0。 ?? end :結(jié)束索引,默認(rèn)為字符串的長度。 ? | mystr='xiaodaobiantchengxngxng' str2='ng' print ("'ng'所在索引序號(hào)為:"+str(mystr.index(str2))) print ("'ng'所在索引序號(hào)為:"+str(mystr.index(str2,17))) print ("'ng'所在索引序號(hào)為:"+str(mystr.index(str2,20))) print ("'ng'所在索引序號(hào)為:"+str(mystr.index(str2,30))) 執(zhí)行結(jié)果: 'ng'所在索引序號(hào)為:15 'ng'所在索引序號(hào)為:18 'ng'所在索引序號(hào)為:21 Traceback (most recent call last): ? ??? print ("'ng'所在索引序號(hào)為:"+str(mystr.index(str2, 30))) ValueError: substring not found ? |
| rindex | rindex( str, beg=0, end=len(string)) 功能說明: | mystr='xiaodaobiantchengxngxng' str2='ng' print (mystr.rindex(str2)) 執(zhí)行結(jié)果: 21 |
| isalnum | isalnum() 功能說明: | mystr='xiaodaobiantchengxngxng' print("'"+mystr+"'"+"是不是個(gè)數(shù)字字母:"+str(mystr.isalnum())) 執(zhí)行結(jié)果: 'xiaodaobiantchengxngxng'是不是個(gè)數(shù)字字母:True |
| isalpha | isalpha() 功能說明: | mystr='xiaodaobiantchengxngxng!' print("'"+mystr+"'"+"是不是個(gè)數(shù)字字母:"+str(mystr.isalnum())) print("'"+mystr+"'"+"是一個(gè)alpha:"+str(mystr.isalpha())) 執(zhí)行結(jié)果: 'xiaodaobiantchengxngxng!'是不是個(gè)數(shù)字字母:False 注:這里最后一個(gè)字母是!號(hào),所以返回為false。 |
| isdigit | isdigit() 功能說明: | mystr='xiaodaobiantchengxngxng!' digitstr='123' print("'"+mystr+"'是數(shù)字:"+str(mystr.isdigit())) print("'"+digitstr+"'是數(shù)字:"+str(digitstr.isdigit())) 執(zhí)行結(jié)果: 'xiaodaobiantchengxngxng!'是數(shù)字:False '123'是數(shù)字:True |
| isdecimal | isdecimal() 功能說明: | digitstr='123' print("'"+digitstr+"'是數(shù)字:"+str(digitstr.isdecimal ())) 執(zhí)行結(jié)果: '123'是數(shù)字:True |
| isnumeric | isnumeric() 功能說明: | mystr = "xiaodao2017"? print ("'"+mystr+"'"+"是不是純數(shù)字:"+str(mystr.isnumeric())) mystr = "23443434" print ("'"+mystr+"'"+"是不是純數(shù)字:"+str(mystr.isnumeric())) 執(zhí)行結(jié)果: 'xiaodao2017'是不是純數(shù)字:False '23443434'是不是純數(shù)字:True |
| isspace | isspace() 功能說明: | mystr = "? "? print ("'"+mystr+"'"+"是不是純數(shù)字:"+str(mystr.isspace())) mystr = "xiao? dao biancheng" print ("'"+mystr+"'"+"是不是純數(shù)字:"+str(mystr.isspace())) 執(zhí)行結(jié)果: '? '是不是純數(shù)字:True 'xiao? dao biancheng'是不是純數(shù)字:False |
| istitle | istitle() 功能說明: 方法檢測(cè)字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫。 | mystr = "This is a string xiaodao"? print ("'"+mystr+"'"+"是不是每個(gè)單詞首字符大寫:"+str(mystr.istitle())) mystr = "This Is A String Xiaodao" print ("'"+mystr+"'"+"是不是每個(gè)單詞首字符大寫:"+str(mystr.istitle())) ? 執(zhí)行結(jié)果: 'This is a string xiaodao'是不是每個(gè)單詞首字符大寫:False 'This Is A String Xiaodao'是不是每個(gè)單詞首字符大寫:True ? |
| title | title() 功能說明: | mystr = "This is a string xiaodao"? print ("'"+mystr+"'"+"里的每個(gè)首字符被大寫:"+str(mystr.title())) ? 執(zhí)行結(jié)果: 'This is a string xiaodao'里的每個(gè)首字符被大寫:This Is A String Xiaodao |
| isupper | isupper() 功能說明: | mystr = "xiaodao"? print ("'"+mystr+"'"+"里的每個(gè)首字符被大寫:"+str(mystr.isupper())) 執(zhí)行結(jié)果: 'xiaodao'里的每個(gè)首字符被大寫:False |
| islower | islower() 功能說明: | mystr = "xiaodao"? print ("'"+mystr+"'"+"里的每個(gè)首字符被大寫:"+str(mystr.islower())) 執(zhí)行結(jié)果: xiaodao'里的每個(gè)首字符被大寫:True |
| upper | upper() 功能說明: 將字符串中里每個(gè)字符轉(zhuǎn)成大寫。 | mystr = "xiaodao"? print ("'"+mystr+"'"+"里的每個(gè)首字符被大寫:"+str(mystr.upper())) 執(zhí)行結(jié)果: 'xiaodao'里的每個(gè)首字符被大寫:XIAODAO |
| lower | lower() 功能說明: 將字符串中里每個(gè)字符轉(zhuǎn)成小寫。 | mystr = "XIAODAO"? print ("'"+mystr+"'"+"里的每個(gè)首字符被大寫:"+str(mystr.lower())) 執(zhí)行結(jié)果: 'XIAODAO'里的每個(gè)首字符被大寫:xiaodao ? |
| swapcase | swapcase() 功能說明: | mystr='xiaodaobiancheng' print('大小寫轉(zhuǎn)換:'+mystr.swapcase()) print('大小寫轉(zhuǎn)換:'+mystr.swapcase().swapcase()) 執(zhí)行結(jié)果: 大小寫轉(zhuǎn)換:XIAODAOBIANCHENG 大小寫轉(zhuǎn)換:xiaodaobiancheng ? |
| len | len(string) 功能說明: 參數(shù)說明: ?? 字符串string | mystr = "XIAODAO"? print ("'"+mystr+"'"+"里的每個(gè)首字符被大寫:"+str(len(mystr))) 執(zhí)行結(jié)果: 'XIAODAO'里的每個(gè)首字符被大寫:7 |
| max | max(str) 功能說明: | mystr = "XIAODAO"? print ("'"+mystr+"'"+"里字符的最大值:"+str(max(mystr))) print("10,20,5里的最大值:"+str(max(10,20,5))) ? 執(zhí)行結(jié)果: 'XIAODAO'里的每個(gè)首字符被大寫:X 10,20,5里的最小值:20 ? |
| min | min(str) 功能說明: | mystr = "XIAODAO"? print ("'"+mystr+"'"+"字符串里的最小值:"+str(min(mystr))) print("10,20,5里的最小值:"+str(min(10,20,5))) ? 執(zhí)行結(jié)果: 'XIAODAO'里的每個(gè)首字符被大寫:A 10,20,5里的最小值:5 |
| join | join(seq) 功能說明: 參數(shù)說明: ?? seq: 要連接的元素序列。 ? | mystr = "_"; seq = ("xiao", "dao", "bian", "cheng"); # 字符串序列 print( mystr.join( seq )); 執(zhí)行結(jié)果: xiao_dao_bian_cheng |
| ljust | ljust(width[, fillchar]) 功能說明: 參數(shù)說明: ?? width:指定字符串長度。 ?? fillchar : 填充字符,默認(rèn)為空格。 ? | mystr='xiaodaobiancheng' print(mystr.ljust(20,'*')); 執(zhí)行結(jié)果: xiaodaobiancheng**** |
| rjust | rjust(width[, fillchar]) 功能說明: 參數(shù)說明: ?? width:指定字符串長度。 fillchar : 填充字符,默認(rèn)為空格 | mystr='xiaodaobiancheng' print(mystr.rjust(20,'*')); ? 執(zhí)行結(jié)果: ****xiaodaobiancheng |
| lstrip | lstrip() 功能說明: | mystr='? xiaodao biancheng' print('去除左側(cè)空格:'+mystr.lstrip()) 執(zhí)行結(jié)果: 去除左側(cè)空格:xiaodao biancheng |
| rstrip | rstrip() 功能說明: 截掉字符串尾部的空格 ? | mystr='? xiaodao biancheng? ' print('尾部去除空格:'+mystr.rstrip()) 執(zhí)行結(jié)果: 尾部去除空格:? xiaodao biancheng |
| strip | strip() 功能說明: 截掉字符串頭部和尾部的空格 ? | mystr='? xiaodaobiantchengxngxng? ' print (mystr.strip()) 執(zhí)行結(jié)果: xiaodaobiantchengxngxng |
| zfill | zfill (width) 功能說明: 參數(shù)說明: ?? width: 指定字符串的長度。原字符串右對(duì)齊,前面填充0。 ? | mystr = "xiao dao bian cheng!!!" print(mystr.zfill(30)) 執(zhí)行結(jié)果: 00000000xiao dao bian cheng!!! |
| replace | replace(old, new [, max]) 功能說明: 參數(shù)說明: ?? old :將被替換的子字符串。 ?? new :新字符串,用于替換old子字符串。 ?? max :可選字符串, 替換不超過 max 次 ? | mystr='? xiaodao biancheng' print("替換'ao'為'what'"+mystr.replace('ao','what')) print("替換'ao'為'what'2次"+mystr.replace('ao','what',2)) ? 執(zhí)行結(jié)果: 替換'ao'為'what'? xiwhatdwhat biancheng 替換'ao'為'what'2次? xiwhatdwhat biancheng |
| split | split(str="", num=string.count(str))
功能說明: 以 str 為分隔符截取字符串,如果 num 有指定值,則僅截取 num 個(gè)子字符串 參數(shù)說明: ?? str:分隔符,默認(rèn)為空格。 ?? num : 分割次數(shù)。 ? | mystr = "xiao dao bian cheng!!!" mystr2 = "xiaao daao baaian cheng!!!" print (mystr.split( )) print (mystr.split('a',1)) print (mystr2.split('a',2)) print (mystr.split('n')) ? 執(zhí)行結(jié)果: ['xiao', 'dao', 'bian', 'cheng!!!'] ['xi', 'o dao bian cheng!!!'] ['xi', '', 'o daao baaian cheng!!!'] ['xiao dao bia', ' che', 'g!!!'] |
| splitlines | splitlines() 功能說明: | mystr = "xiao\ndao\nbian\ncheng!!!" print (mystr.splitlines()) 執(zhí)行結(jié)果: ['xiao', 'dao', 'bian', 'cheng!!!'] |
| maketrans | maketrans(intab, outtab) 功能說明: 參數(shù)說明: ?? intab — 字符串中要替代的字符組成的字符串。 ?? outtab — 相應(yīng)的映射字符的字符串。 ? | intab = "aeiou" outtab = "12345" trantab = str.maketrans(intab, outtab) mystr = "xiao dao bian cheng!!!" print (mystr.translate(trantab)) 執(zhí)行結(jié)果: x314 d14 b31n ch2ng!!! |
| translate | translate(table, deletechars="") 功能說明: 參數(shù)說明: ?? table:翻譯表,翻譯表是通過maketrans方法轉(zhuǎn)換而來。 ?? deletechars:字符串中要過濾的字符列表 ? | intab = "aeiou" outtab = "12345" trantab = str.maketrans(intab, outtab) mystr = "xiao dao bian cheng!!!" print (mystr.translate(trantab)) 執(zhí)行結(jié)果: x314 d14 b31n ch2ng!!! |
| partition | partition(str) 功能說明: 該方法用來根據(jù)指定的分隔符將字符串進(jìn)行分割。 如果字符串包含指定的分隔符,則返回一個(gè)3元的元組,第一個(gè)為分隔符左邊的子串,第二個(gè)為分隔符本身,第三個(gè)為分隔符右邊的子串。 參數(shù)說明: ?? str:指定的分隔符。 | mystr='xiao dao bian cheng' print(mystr.partition(' ')) 執(zhí)行結(jié)果: ('xiao', ' ', 'dao bian cheng') |
| rpartition | rpartition() 功能說明: 功能類似partition,只是從右邊開始查找。 參數(shù)說明: ?? str:指定的分隔符。 | mystr='xiao dao bian cheng' print(mystr.rpartition(' ')) 執(zhí)行結(jié)果: ('xiao dao bian', ' ', 'cheng') |
?
9.6 總結(jié)
通過本章的學(xué)習(xí)我們了解了字符串里常用的處理方法,為我們后期的程序開發(fā)奠定了堅(jiān)實(shí)的基礎(chǔ)。接下來我們學(xué)習(xí)下python里的輸入輸出。
總結(jié)
以上是生活随笔為你收集整理的Python基础概念_8_字符串处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础概念_7_数据结构
- 下一篇: websocket python爬虫_p