python rfind函数用法_Python语法速查:字符串格式简单处理、子串查找与判断方法?...
這是一篇python基礎知識分享型文章,對學習python感興趣的朋友們可以仔細看看
字符串常用方法
Python3中,字符串全都用Unicode形式,所以省去了很多以前各種轉(zhuǎn)換與聲明的麻煩。字符串屬于序列,所有序列可用的方法(比如切片等)都可用于字符串。
注意:字符串屬于不可變序列,所有處理修改字符的方法,都會生成一個新字符串返回,原字符串不會變。
字符串方法簡述舉例或說明
字符串內(nèi)容檢查
s.isalpha()是否所有字符都為字母'abc'.isalpha() # 結果為 True
s.islower()字符串中字母是否都為小寫(無視其中的非字母字符)'abc'.islower() # 結果為 True
s.isupper()字符串中字母是否都為大寫(無視其中的非字母字符)'ABC'.isupper() # 結果為 True
s.isdecimal()是否所有字符都為數(shù)字0~9(小數(shù)點和正負號視作非數(shù)字)'123'.isdedimal() # 結果為 True
s.isdigit()是否所有字符都為:數(shù)字0~9、羅馬數(shù)字(小數(shù)點和正負號視作非數(shù)字)'Ⅳ'.isdigit() # 結果為 True
s.isnumeric()是否所有字符都為:數(shù)字0~9、羅馬數(shù)字、漢字數(shù)字(小數(shù)點和正負號視作非數(shù)字)'一百'.isnumeric() # 結果為 True
s.isalnum()是否所有字符都為字母或數(shù)字'abc123'.isalnum() # 結果為 True
s.isspace()是否所有字符都為空白' t '.isspace() # 結果為 True
s.isprintable()是否所有字符都可打印。'at'.isprintable() # 結果為 False
s.isascii()是否所有字符都為ascii碼范圍內(nèi)字符'a1#'.isascii() # 結果為 True
s.istitle()是否字符串中每個單詞首字母都為大寫(若單詞首字符為非字母字符,則判斷第2個字符,以此類推)'Ab 2Cc'.istitle() # 結果為 True
s.isidentifier()字符串內(nèi)容是否為Python保留字'if'.isidentifier() # 結果為 True
子串查找與判斷
s.startswith(prefix [,start [,end]])檢查字符串是否以prefix開頭,start, end為查找范圍(用法同切片)。'abc'.startswith('ab') # 結果為 True
s.endswith(suffix [,start [,end]])檢查字符串是否以suffix結尾,start, end為查找范圍(用法同切片)。'abc'.endswith('b') # 結果為 False
'abc'.endswith('b',0,2) # 結果為 True
s.find(sub [,start [,end]])查找指定字符串sub首次出現(xiàn)的位置,若沒找到則返回-1。start, end為查找范圍(用法同切片)。'abcabc'.find('bc') # 結果為 1
s.rfind(sub [,start [,end]])查找指定字符串sub最后一次出現(xiàn)的位置,若沒找到則返回-1,start, end用法同上。'abcabc'.rfind('bc') # 結果為 4
s.index(sub [,start [,end]])功能同s.find(),區(qū)別是沒找到時引發(fā)ValueError錯誤。'abcabc'.index('bc') # 結果為 1
s.rindex(sub [,start [,end]])功能同s.rfind(),區(qū)別是沒找到時引發(fā)ValueError錯誤。'abcabc'.index('bc') # 結果為 4
s.count(sub [,start [,end]])統(tǒng)計指定子字符串sub出現(xiàn)的次數(shù),start和end為查找范圍(用法同切片)。'abc'.count('b',1,1) # 結果為 0
'abc'.count('b',1,2) # 結果為 1
字符串修改
s.lower()返回新字符串,內(nèi)容為將原字符串中字母全轉(zhuǎn)成小寫(非字母字符則不變)'A1B2'.lower() # 返回為 'a1b2'
s.upper()返回新字符串,內(nèi)容為將原字符串中字母全轉(zhuǎn)成大寫(非字母字符則不變)'a1b2'.upper() # 返回為 'A1B2'
s.swapcase()返回新字符串,內(nèi)容為將原字符串中字母大小寫互換(非字母字符則不變)'abCD'.swapcase() # 返回為 'ABcd'
s.capitalize()返回新字符串,內(nèi)容為將原字符串中每個單詞的首字母變?yōu)榇髮憽?#39;ab cd'.capitalize()
返回為 'Ab Cd;
s.expandtabs(tabsize=8)返回新字符串,內(nèi)容用空格替換制表符,入?yún)閠ab對應的空格數(shù)。atb'.expandtabs(4)
返回為 'a b'
s.replace(old, new [,count])返回新字符串,內(nèi)容為用new替換原字符串中old內(nèi)容,count可指定替換次數(shù)(默認為全部替換)'abcdab'.replace('ab','xy')
返回為 'xycdxy'
字符串格式簡單處理
s.strip([chars])返回新字符串,內(nèi)容為刪掉原字符串中兩邊的空白。若指定入?yún)hars,則為刪掉原字符串兩端在入?yún)hars中出現(xiàn)的字符。' abc '.strip() # 返回為 'abc'
'www.xyz.com'.strip('.cwom')
返回為 'xyz'
s.lstrip([chars])用法同上,不過僅處理字符串的左邊。'www.xyz.com'.lstrip('.cwom')
返回為 'xyz.com'
s.rstrip([chars])用法同上,不過僅處理字符串的右邊。'www.xyz.com'.rstrip('.cwom')
返回為 www.xyz'
s.center(width [,fillchar])返回新字符串,在長度為width的寬度內(nèi)將原字符串居中,fillchar為填充單字符'abc'.center(9,'*')
返回為 'abc'
s.ljust(width [,fillchar])返回新字符串,在長度為width的寬度內(nèi)將原字符串靠左對齊,fillchar為填充單字符'abc'.ljust(9,'*')
返回為 'abc******'
s.rjust(width [,fillchar])返回新字符串,在長度為width的寬度內(nèi)將原字符串靠右對齊,fillchar為填充單字符'abc'.rjust(9,'*')
返回為 '******abc'
s.zfill(width)返回新字符串,在原字符串左邊填充0,直至其寬度為width'abc'.zfill(9)
返回為 '000000abc'
s.translate(table)字符映射轉(zhuǎn)換。使用一個轉(zhuǎn)換表table,將字符串中的某個子串映射成另一個子串。轉(zhuǎn)換table由下面的maketrans()方法生成。t=str.maketrans({'ab':'cd'})
'abc'.translate(t)
返回為 'cdc'
t2=str.maketrans('ab','xy')
'abc'.translate(t2)
返回為 'xyc'
t3=str.maketrans('ab','xy',c)
'abc'.translate(t3)
返回為 'xy'
s.maketrans(x [,y [,z]])靜態(tài)方法。生成一個供上面translate()方法是用的轉(zhuǎn)換表,其中原始子串和映射后子串必須長度相同。若只提供一個參數(shù):x必須為一個字典,鍵名表示原始子串,值表示映射后子串。若提供2個參數(shù):x表示原始子串,y表示映射后子串。若提供3個參數(shù):x, y含義不變,z表示要刪除的子串。
完整字符串格式化方法
s.format(**args, *kwargs)字符串格式化方法用法詳見“字符串格式化”篇
s.format_map(mapping)Python3.2新增方法,可以直接使用字典作為輸入?yún)?shù)進行字符串格式化。比較:format()與format_map()
'Hi {name}!'.format(name='Tom')
結果為 'Hi Tom!'
d={'name':'Tom'}
'Hi {name}!'.format_map(d)
結果為 'Hi Tom!'
字符串分割與拼接
s.split(sep=None, maxsplit=-1)將字符串以sep作為分隔符進行劃分,將劃分后的每個片段子串排成一個列表返回。maxsplit是劃分的最大次數(shù)(默認-1為不設上限)。若在字符串中沒找到指定分隔符,則將原字符串作為單一元素放入列表。'a,b,c'.split(',')
結果為 ['a','b','c']
s.rsplit(sep=None, maxsplit=-1)用法同上,只不過是從右邊開始劃分字符串,列表中內(nèi)容的順序仍舊為從左到右。詳見右例。'a,b,c'.rsplit(',',maxsplit=1)
結果為 ['a,b','c']
'a,b,c'.rsplit(',')
結果仍為 ['a','b','c']
splitlines([keepends])將多行字符串按行進行分隔成列表,若參數(shù)keepends為True,則保留每行后的換行符。x="""a
b"""
x.splitlines()
結果為 ['a','b']
x.splitlines(True)
結果為 ['an','b']
s.partition(sep)用分隔符字符串sep劃分字符串,返回一個元祖(head, sep, tail)。若沒找到sep,則返回(s, "", "")'a;b;c'.partition(';')
結果為 ('a', ';', 'b;c')
s.rpartition(sep)用法同上,只不過是從右邊開始劃分字符串,詳見右例。'a;b;c'.rpartition(';')
結果為 ('a;b', ';', 'c')
s.join(iter)用s作為分隔符,將iter中所有迭代對象拼接成一個字符串返回。';'.join('abc')
結果為 'a;b;c'
';'.join(['ab','cd'])
結果為 'ab;cd'
字符串編碼
s.encoding(encoding="utf-8", errors="sctrict")返回字符串的編碼后字節(jié)流版本,返回類型為bytes。默認為嚴格檢錯模式,只要在轉(zhuǎn)換過程中發(fā)現(xiàn)錯誤,即引發(fā)UnicodeError錯誤。常用的encoding參數(shù):
'ascii'、'utf-16'、'utf-32'、
'gb2312'(國標)、
'gbk' (gb2312的超集)
覺得文章還不錯的話不妨收藏起來慢慢看,有任何建議或看法歡迎大家在評論區(qū)分享討論!
成長離不開與優(yōu)秀的伙伴共同學習,如果你需要好的學習環(huán)境,好的學習資源,項目教程,零基礎學習,這里歡迎每一位熱愛Python的小伙伴,點擊:Python學習圈
總結
以上是生活随笔為你收集整理的python rfind函数用法_Python语法速查:字符串格式简单处理、子串查找与判断方法?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: directplay需要安装吗_燃气报警
- 下一篇: ie浏览器修复_[图]三大Windows