如何進(jìn)行Python字符串操作?
Python的有點(diǎn)為:簡單、免費(fèi)、開源、高層語言、可移植性、解釋性、面向?qū)ο?、可擴(kuò)展性、可嵌入性、豐富的庫,Python確實(shí)是一種十分精彩又強(qiáng)大的語言。它合理地結(jié)合了高性能與使得編寫程序簡單有趣的特色,下面講述python字符串操作流程。
要使用string的方法要先import,但后來由于眾多的python使用者的建議,從python2.0開始, string方法改為用S.method()的形式調(diào)用,只要S是一個(gè)字符串對象就可以這樣使用,而不用import。同時(shí)為了保持向后兼容,現(xiàn)在的Python中仍然保留了一個(gè)string的module。#t#
其中定義的方法與python字符串操作是相同的,這些方法都最后都指向了用S.method ()調(diào)用的函數(shù)。要注意,S.method()能調(diào)用的方法比string的module中的多,比如isdigit()、istitle()等就只能用 S.method()的方式調(diào)用。 對一個(gè)字符串對象,首先想到的操作可能就是計(jì)算它有多少個(gè)字符組成,很容易想到用S.len(),但這是錯的,應(yīng)該是len(S)。因?yàn)閘en()是內(nèi)置函數(shù),包括在__builtin__模塊中。
python字符串操作不把len()包含在string類型中,乍看起來好像有點(diǎn)不可理解,其實(shí)一切有其合理的邏輯在里頭。len()不僅可以計(jì)算字符串中的字符數(shù)。還可以計(jì)算list的成員數(shù),tuple的成員數(shù)等等,因此單單把len()算在string里是不合適,因此一是可以把len()作為通用函數(shù)。
用重載實(shí)現(xiàn)對不同類型的操作,還有就是可以在每種有l(wèi)en()運(yùn)算的類型中都要包含一個(gè)len()函數(shù)。 Python選擇的是第一種解決辦法。類似的還有str(arg)函數(shù),它把a(bǔ)rg用string類型表示出來。
字符串中字符大小寫的變換:
- S.lower() #小寫
- S.upper() #大寫
- S.swapcase() #大小寫互換
- S.capitalize() #首字母大寫
- String.capwords(S)
字符串在輸出時(shí)的對齊:
- S.lower() #小寫
- S.upper() #大寫
- S.swapcase() #大小寫互換
- S.capitalize() #首字母大寫
- String.capwords(S)
字符串中的搜索和替換:
- S.lower() #小寫
- S.upper() #大寫
- S.swapcase() #大小寫互換
- S.capitalize() #首字母大寫
- String.capwords(S)
使用上面的函數(shù)產(chǎn)后的翻譯表,把S進(jìn)行翻譯,并把deletechars中有的字符刪掉。需要注意的是,如果S為unicode字符串,那么就不支持 deletechars參數(shù)??梢允褂冒涯硞€(gè)字符翻譯為python字符串操作的方式實(shí)現(xiàn)相同的功能。此外還可以使用codecs模塊的功能來創(chuàng)建更加功能強(qiáng)大的翻譯表。 字符串還有一對編碼和解碼的函數(shù):
- #是否全是字母和數(shù)字,并至少有一個(gè)字符
- S.isalpha() #是否全是字母,并至少有一個(gè)字符
- S.isdigit() #是否全是數(shù)字,并至少有一個(gè)字符
- S.isspace() #是否全是空白字符,并至少有一個(gè)字符
- S.islower() #S中的字母是否全是小寫
- S.isupper() #S中的字母是否便是大寫
- S.istitle() #S是否是首字母大寫的
【編輯推薦】