首先我們要明白在python中當(dāng)字符編碼為:UTF-8時(shí),中文在字符串中的占位為3個(gè)字節(jié),其余字符為一個(gè)字節(jié)
下面就直接介紹幾種python中字符串常用的幾種字符串內(nèi)置函數(shù)(本文中牽扯到了模塊與一些之前章節(jié)沒講過的相關(guān)知識(shí),坑我之后會(huì)填的)
字符串切片(截取字符串):
#字符串切片 string[開始位置:結(jié)束位置:步長(zhǎng)] name = "鞏?t鵬"print(name[0:]) #從第一個(gè)字符截取到最后一個(gè)字符 print(name[0:2]) #從第一個(gè)字符截取到第二個(gè)字符 print(name[:3]) #從第一個(gè)字符截取到第三個(gè)個(gè)字符 print(name[0:3:2]) #從第一個(gè)字符截取到最后一個(gè)字符,每次步長(zhǎng)為2
輸出結(jié)果如下:
鞏?t鵬
鞏?t
鞏?t鵬
鞏鵬
分割字符串:
#分割字符串 split()函數(shù) string.splist(sep,maxsplit) #string.splist(用于指定分隔符(如果沒有參數(shù),默認(rèn)為None即空格), 分割次數(shù)(默認(rèn)為-1,即沒有限制)) #eg word ="所 有 風(fēng) 光 的 背 后,最 終 都 要 用 孤 獨(dú) 來 償 還" print(word.split()) #默認(rèn)為用空格進(jìn)行分割 print(word.split(',')) #使用逗號(hào)(,)進(jìn)行分割 print(word.split(' ',5)) #使用空格(None) 來進(jìn)行分割,且只分割前五個(gè)字符
輸出結(jié)果如下:
['所', '有', '風(fēng)', '光', '的', '背', '后,最', '終', '都', '要', '用', '孤', '獨(dú)', '來', '償', '還']
['所 有 風(fēng) 光 的 背 后', '最 終 都 要 用 孤 獨(dú) 來 償 還']
['所', '有', '風(fēng)', '光', '的', '背 后,最 終 都 要 用 孤 獨(dú) 來 償 還']
可以看出,分割完字符串后,返回值為數(shù)組.
檢索字符串:count()函數(shù) 以及 find()函數(shù) index()函數(shù) startswitch()函數(shù) endswitch()函數(shù)
#count()方法 返回值為:int 用于檢索指定字符在另外一個(gè)字符串中出現(xiàn)的次數(shù),如果檢索的字符不存在則會(huì)返回0. #語法為string.count(sub[start[end]]) string:被檢索的字符串 sub:要檢索的字符 start:可選,開始位置 end:可選,結(jié)束位置 #eg: demoStr = "@中國(guó),@美國(guó),@英國(guó)" print(demoStr.count('@')) print(demoStr.count('國(guó)'))
輸出結(jié)果如下:
3
3
find()函數(shù)
#find()函數(shù) 返回值為:int 用于檢索指定字符在另外一個(gè)字符串中第一次出現(xiàn)的下標(biāo),如果沒有發(fā)現(xiàn)字符則會(huì)返回-1 #語法為string.find(sub[start[end]]) string:被檢索的字符串 sub:要檢索的字符 start:可選,開始位置 end:可選,結(jié)束位置 #eg: testStr = "123123123" print(testStr.find('1')) print(testStr.find('3'))
輸出結(jié)果如下:
0
2
index()方法 返回值為:int 與find()方法類似 只是如果index()方法沒有查找到字符將會(huì)拋出異常
startswitch()方法與endswitch()方法
#startswitch()方法與endswitch()方法 返回值:boolean 用于檢索是否以指定字符串開頭亦或者是結(jié)尾 #語法:string.startswitch(sum[,start[,end]]) string.endswitch(sum[,start[,end]]) #eg: email = "g2982272986@qq.com" print(email.startswith('g')) print(email.endswith('.com'))
輸出結(jié)果如下:
True
True
字符串轉(zhuǎn)換大小寫 lower()方法 upper()方法
#lower()轉(zhuǎn)小寫 語法: string.lower() #eg: demoStr_lower = "sfSLDFsdlfk" print("原字符串為"+demoStr_lower) print("轉(zhuǎn)換后為:"+demoStr_lower.lower()) #upper()轉(zhuǎn)大寫 語法:string.upper() #eg: demoStr_upper = "sfSLDFsdlfk" print("原字符串為"+demoStr_upper) print("轉(zhuǎn)換后為:"+demoStr_upper.upper())
輸出結(jié)果:
原字符串為sfSLDFsdlfk
轉(zhuǎn)換后為:sfsldfsdlfk
原字符串為sfSLDFsdlfk
轉(zhuǎn)換后為:SFSLDFSDLFK
過濾字符串: re模塊中的sub函數(shù)
直接上代碼,看完演示就懂了
#定義一個(gè)函數(shù)來過濾字符串 #語法:#sub(repl, string[, count]) 或 re.sub(pattern, repl, string[, count]): #第一個(gè)參數(shù):需要屏蔽的關(guān)鍵詞 第二個(gè)參數(shù):過濾后替換原來關(guān)鍵字的字符串 第三個(gè)參數(shù):需要過濾的字符串 #使用repl替換string中每一個(gè)匹配的子串后返回替換后的字符串。 def filterfar(string): """ 用于過濾字符串 :param 需要過濾的字符串: 參數(shù) :return: 過濾后的字符串 """ # 導(dǎo)入模塊 import re #需要過濾的關(guān)鍵字 string_re = r"(黑客)|(監(jiān)聽)" #過濾字符串 sub = re.sub(string_re,"= =!",string) #第一個(gè)參數(shù):需要屏蔽的關(guān)鍵詞 第二個(gè)參數(shù):過濾后替換的問題 第三個(gè)參數(shù):需要過濾的字符串 print(sub) #打印輸出 filterfar("我是一名黑客") filterfar("我現(xiàn)在正在監(jiān)聽你")
輸出結(jié)果:
我是一名= =!
我現(xiàn)在正在= =!你
可以看到黑客以及監(jiān)聽二字被過濾成= =!了
至于語法中為什么有一個(gè)函數(shù)是直接函數(shù)名sub調(diào)用,一個(gè)是re.sub來調(diào)用,后續(xù)講到模塊時(shí)會(huì)講到.
總結(jié)
以上所述是小編給大家介紹的Python中字符串String的基本內(nèi)置函數(shù)與過濾字符模塊函數(shù)的基本用法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
