Python學(xué)習(xí)之字符串常用操作詳解
1、查找字符串
除了使用index()方法在字符串中查找指定元素,還可以使用find()方法在一個(gè)較長的字符串中查找子串。如果找到子串,返回子串所在位置的最左端索引,否則返回-1。
語法格式:
str.find(sub[,start[,end]])
其中,str表示被查找的字符串。sub表示查找的子串。start表示開始索引,缺省時(shí)為0。end表示結(jié)束索引,缺省時(shí)為字符串的長度。
如果需要知道指定元素在序列中出現(xiàn)的次數(shù),可以使用count()方法進(jìn)行計(jì)數(shù)并返回。
語法格式:
sequence.count(obj)
其中,sequence表示序列,obj表示要統(tǒng)計(jì)的對象。
例:使用index()查找《三國演義》片段中某個(gè)字首次出現(xiàn)的位置,然后使用count()方法統(tǒng)計(jì)出現(xiàn)的次數(shù)。
ex='''次日,于桃園中,備下烏牛白馬祭禮等項(xiàng),三人焚香再拜而說誓曰:“念劉備、關(guān)羽、張飛,雖然異姓,既結(jié)為兄弟,則同心協(xié)力,救困扶危;上報(bào)國家,下安黎庶。
不求同年同月同日生,只愿同年同月同日死。
皇天后土,實(shí)鑒此心,背義忘恩,天人共戮!”誓畢,拜玄德為兄,關(guān)羽次之,張飛為弟。祭罷天地,復(fù)宰牛設(shè)酒,聚鄉(xiāng)中勇士,
得三百余人,就桃園中痛飲一醉。來日收拾軍器,但恨無馬匹可乘。正思慮間,人報(bào)有兩個(gè)客人,引一伙伴當(dāng),趕一群馬,投莊上來。
玄德曰:“此天佑我也!”三人出莊迎接。原來二客乃中山大商:一名張世平,一名蘇雙,每年往北販馬,近因寇發(fā)而回。
玄德請二人到莊,置酒管待,訴說欲討賊安民之意。二客大喜,愿將良馬五十匹相送;又贈金銀五百兩,鑌鐵一千斤,以資器用。
'''
name=input('請輸入人物姓名:')
if name in ex:
#用index()方法獲取name首次出現(xiàn)的位置Index
Index=ex.index(name)
print(name,'首次出現(xiàn)的位置的索引為:',Index)
print(name,'在此片段中出現(xiàn)',ex.count(name),'次')
else:
print(name+'沒有出現(xiàn)在片段中')
例:使用find()方法完成上面的例子
ex='''次日,于桃園中,備下烏牛白馬祭禮等項(xiàng),三人焚香再拜而說誓曰:“念劉備、關(guān)羽、張飛,雖然異姓,既結(jié)為兄弟,則同心協(xié)力,救困扶危;上報(bào)國家,下安黎庶。
不求同年同月同日生,只愿同年同月同日死。
皇天后土,實(shí)鑒此心,背義忘恩,天人共戮!”誓畢,拜玄德為兄,關(guān)羽次之,張飛為弟。祭罷天地,復(fù)宰牛設(shè)酒,聚鄉(xiāng)中勇士,
得三百余人,就桃園中痛飲一醉。來日收拾軍器,但恨無馬匹可乘。正思慮間,人報(bào)有兩個(gè)客人,引一伙伴當(dāng),趕一群馬,投莊上來。
玄德曰:“此天佑我也!”三人出莊迎接。原來二客乃中山大商:一名張世平,一名蘇雙,每年往北販馬,近因寇發(fā)而回。
玄德請二人到莊,置酒管待,訴說欲討賊安民之意。二客大喜,愿將良馬五十匹相送;又贈金銀五百兩,鑌鐵一千斤,以資器用。
'''
name=input("請輸入人物姓名:")
Index=ex.find(name)
if Index>-1:
print('{}首次出現(xiàn)的位置索引為:{}'.format(name,Index))
print('{}在此片段中出現(xiàn){}次'.format(name,ex.count(name)))
else:
print('{}沒有出現(xiàn)在此片段中'.format(name))
2、分割字符串
split()方法以指定字符為分隔符,從字符串左端開始將字符串分隔成多個(gè)子串,并返回分割結(jié)果的列表。
語法格式:
str.split([delimiter,num])
其中,str表示被分割的字符串,delimiter表示分隔符,可以是空格、換行(\n)、制表符(\t)等,缺省時(shí)為空格,num表示分割次數(shù),缺省時(shí)全部分割。
# 分割字符串
strs='This is an example of cutting' #創(chuàng)建字符串
#以空格為分隔符將字符串全部分割
print(strs.split()) # ['This', 'is', 'an', 'example', 'of', 'cutting']
#以空格為分隔符將字符串分割3次
print(strs.split(' ',3)) # ['This', 'is', 'an', 'example of cutting']
3、連接字符串
join()方法用于將序列中的元素以指定的字符連接,生成一個(gè)新的字符串。
語法格式:
str.join(sequence)
其中,str表示連接符,可以為空,sequence表示要連接的序列
# 連接字符串
print('-'.join('Python!')) # P-y-t-h-o-n-!
#例:將字符串“Rain falls on field and tree”中的多余空格刪除,即如果有連續(xù)空格只保留一個(gè)
strs='Rain falls on field and tree'
print('原文:',strs)
split_strs=strs.split() #以空格為分割符,將strs全部分割
print("以空格分割后:",split_strs) # ['Rain', 'falls', 'on', 'field', 'and', 'tree']
join_strs=' '.join(split_strs) # 用空格連續(xù)分割后的字串
print('只留一個(gè)空格的結(jié)果:',join_strs) # Rain falls on field and tree
4、替換字符串
replace()方法用于將字符串中的舊字符串替換成新字符串。
語法格式:
str.replace(old,new[,max])
其中, str表示字符串,old表示將被替換的舊字符串,new表示新字符串,用于替換old,max是可選參數(shù),表示替換的最大次數(shù),缺省時(shí)替換所有。
#替換字符串
#例:使用replace()方法將字符串“hello Python hello hello”中的“hello”替換成“HELLO”
strs='hello Python hello hello'
#全部替換
print(strs.replace('hello','HELLO')) # HELLO Python HELLO HELLO
#只替換2次
print(strs.replace('hello','HELLO',2)) # HELLO Python HELLO hello
5、移除字符串的首尾字符
strip()方法用于移除字符串首尾連續(xù)的空白字符或指定字符。
語法格式:
str.strip([chars])
其中,str表示字符串,chars表示移除的字符串首尾指定的字符,缺省時(shí)為空格。
#移除字符串的首尾字符
#例:使用strip()方法移除字符串‘110This is an test0001'中的‘0'和‘1'
strs='110This is an test0001'
#移除兩端的1
print(strs.strip('1')) # 0This is an test000
# print(strs.strip('0')) # 結(jié)果:110This is an test0001 說明移除兩端需要按順序移除
#移除兩端的1和0
print(strs.strip('10')) # This is an test
6、轉(zhuǎn)換字符串的大小寫
lower()方法用于將字符串中所有大寫字符轉(zhuǎn)換為小寫,而upper()方法則用于將字符串中所有小寫字符轉(zhuǎn)換為大寫。
語法格式:
str.lower()和str.upper()
#轉(zhuǎn)換字符串的大小寫 #例:使用lower()方法將字符串“HELLO Python”轉(zhuǎn)換為小寫,再使用upper()方法將其轉(zhuǎn)換為大寫 strs='HELLO Python' print(strs.lower()) # hello python print(strs.upper()) # HELLO PYTHON
7、檢測字符串(后續(xù)還會更新)
isalnum()方法用于檢測字符串是否由字母和數(shù)字,或兩種中的一種組成,如果是則返回True,否則返回False。
語法格式:
str.isalnum()
其中,str表示要檢測的字符串
#檢測字符串 #例:使用isalnum()方法判斷字符串“2022test”是否由字母和數(shù)字組成 strs='2022test' print(strs.isalnum()) # True str2='六' print(str2.isalnum()) # True 支持漢字 str3='20 22' print(str3.isalnum()) # False 包含空格為false
到此這篇關(guān)于Python學(xué)習(xí)之字符串常用操作詳解的文章就介紹到這了,更多相關(guān)Python字符串操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解如何從根本上優(yōu)雅地解決VSCode中的Python模塊導(dǎo)入問題
有時(shí)你可能會遇到這種問題,明明用pip安裝好了一個(gè)python模塊,但在VScode中總是顯示錯(cuò)誤,這篇文章主要給大家介紹了關(guān)于如何從根本上優(yōu)雅地解決VSCode中的Python模塊導(dǎo)入問題的相關(guān)資料,需要的朋友可以參考下2024-07-07
Python與Matlab混合編程的實(shí)現(xiàn)案例
本文主要介紹了Python與Matlab混合編程的實(shí)現(xiàn)案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
mac PyCharm添加Python解釋器及添加package路徑的方法
今天小編就為大家分享一篇mac PyCharm添加Python解釋器及添加package路徑的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
python爬蟲流程基礎(chǔ)示例零基礎(chǔ)學(xué)習(xí)
這篇文章主要為大家介紹了python爬蟲流程基礎(chǔ)示例零基礎(chǔ)學(xué)習(xí),我們將討論 Python 網(wǎng)絡(luò)編程中的爬蟲基礎(chǔ),作為一個(gè)完全的初學(xué)者,你將學(xué)習(xí)到爬蟲的基本概念、常用庫以及如何編寫一個(gè)簡單的爬蟲2023-06-06
Python中函數(shù)eval和ast.literal_eval的區(qū)別詳解
eval函數(shù)在Python中做數(shù)據(jù)類型的轉(zhuǎn)換還是很有用的。它的作用就是把數(shù)據(jù)還原成它本身或者是能夠轉(zhuǎn)化成的數(shù)據(jù)類型。那么eval和ast.literal_val()的區(qū)別是什么呢?本文將大家介紹關(guān)于Python中函數(shù)eval和ast.literal_eval區(qū)別的相關(guān)資料,需要的朋友可以參考下。2017-08-08
python科學(xué)計(jì)算之narray對象用法
今天小編就為大家分享一篇python科學(xué)計(jì)算之narray對象用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
matplotlib 縱坐標(biāo)軸顯示數(shù)據(jù)值的實(shí)例
今天小編就為大家分享一篇matplotlib 縱坐標(biāo)軸顯示數(shù)據(jù)值的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05

