天天看點

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...

這是一篇python基礎知識分享型文章,對學習python感興趣的朋友們可以仔細看看

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...

字元串常用方法

Python3中,字元串全都用Unicode形式,是以省去了很多以前各種轉換與聲明的麻煩。字元串屬于序列,所有序列可用的方法(比如切片等)都可用于字元串。

注意:

字元串屬于不可變序列,所有處理修改字元的方法,都會生成一個新字元串傳回,原字元串不會變。

字元串方法簡述舉例或說明

字元串内容檢查

s.isalpha()是否所有字元都為字母'abc'.isalpha() # 結果為 True

s.islower()字元串中字母是否都為小寫(無視其中的非字母字元)'abc'.islower() # 結果為 True

s.isupper()字元串中字母是否都為大寫(無視其中的非字母字元)'ABC'.isupper() # 結果為 True

s.isdecimal()是否所有字元都為數字0~9(小數點和正負号視作非數字)'123'.isdedimal() # 結果為 True

s.isdigit()是否所有字元都為:數字0~9、羅馬數字(小數點和正負号視作非數字)'Ⅳ'.isdigit() # 結果為 True

s.isnumeric()是否所有字元都為:數字0~9、羅馬數字、漢字數字(小數點和正負号視作非數字)'一百'.isnumeric() # 結果為 True

s.isalnum()是否所有字元都為字母或數字'abc123'.isalnum() # 結果為 True

s.isspace()是否所有字元都為空白' t '.isspace() # 結果為 True

s.isprintable()是否所有字元都可列印。'at'.isprintable() # 結果為 False

s.isascii()是否所有字元都為ascii碼範圍内字元'a1#'.isascii() # 結果為 True

s.istitle()是否字元串中每個單詞首字母都為大寫(若單詞首字元為非字母字元,則判斷第2個字元,以此類推)'Ab 2Cc'.istitle() # 結果為 True

s.isidentifier()字元串内容是否為Python保留字'if'.isidentifier() # 結果為 True

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...
子串查找與判斷

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首次出現的位置,若沒找到則傳回-1。start, end為查找範圍(用法同切片)。'abcabc'.find('bc') # 結果為 1

s.rfind(sub [,start [,end]])查找指定字元串sub最後一次出現的位置,若沒找到則傳回-1,start, end用法同上。'abcabc'.rfind('bc') # 結果為 4

s.index(sub [,start [,end]])功能同s.find(),差別是沒找到時引發ValueError錯誤。'abcabc'.index('bc') # 結果為 1

s.rindex(sub [,start [,end]])功能同s.rfind(),差別是沒找到時引發ValueError錯誤。'abcabc'.index('bc') # 結果為 4

s.count(sub [,start [,end]])統計指定子字元串sub出現的次數,start和end為查找範圍(用法同切片)。'abc'.count('b',1,1) # 結果為 0

'abc'.count('b',1,2) # 結果為 1

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...
字元串修改

s.lower()傳回新字元串,内容為将原字元串中字母全轉成小寫(非字母字元則不變)'A1B2'.lower() # 傳回為 'a1b2'

s.upper()傳回新字元串,内容為将原字元串中字母全轉成大寫(非字母字元則不變)'a1b2'.upper() # 傳回為 'A1B2'

s.swapcase()傳回新字元串,内容為将原字元串中字母大小寫互換(非字母字元則不變)'abCD'.swapcase() # 傳回為 'ABcd'

s.capitalize()傳回新字元串,内容為将原字元串中每個單詞的首字母變為大寫。'ab cd'.capitalize()

傳回為 'Ab Cd;

s.expandtabs(tabsize=8)傳回新字元串,内容用空格替換制表符,入參為tab對應的空格數。atb'.expandtabs(4)

傳回為 'a b'

s.replace(old, new [,count])傳回新字元串,内容為用new替換原字元串中old内容,count可指定替換次數(預設為全部替換)'abcdab'.replace('ab','xy')

傳回為 'xycdxy'

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...
字元串格式簡單處理

s.strip([chars])傳回新字元串,内容為删掉原字元串中兩邊的空白。若指定入參chars,則為删掉原字元串兩端在入參chars中出現的字元。' 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的寬度内将原字元串居中,fillchar為填充單字元'abc'.center(9,'*')

傳回為 ' abc '

s.ljust(width [,fillchar])傳回新字元串,在長度為width的寬度内将原字元串靠左對齊,fillchar為填充單字元'abc'.ljust(9,'*')

傳回為 'abc******'

s.rjust(width [,fillchar])傳回新字元串,在長度為width的寬度内将原字元串靠右對齊,fillchar為填充單字元'abc'.rjust(9,'*')

傳回為 '******abc'

s.zfill(width)傳回新字元串,在原字元串左邊填充0,直至其寬度為width'abc'.zfill(9)

傳回為 '000000abc'

s.translate(table)字元映射轉換。使用一個轉換表table,将字元串中的某個子串映射成另一個子串。轉換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]])靜态方法。生成一個供上面translate()方法是用的轉換表,其中原始子串和映射後子串必須長度相同。若隻提供一個參數:x必須為一個字典,鍵名表示原始子串,值表示映射後子串。若提供2個參數:x表示原始子串,y表示映射後子串。若提供3個參數:x, y含義不變,z表示要删除的子串。

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...
完整字元串格式化方法

s.format(**args, *kwargs)字元串格式化方法用法詳見“字元串格式化”篇

s.format_map(mapping)Python3.2新增方法,可以直接使用字典作為輸入參數進行字元串格式化。比較:format()與format_map()

'Hi {name}!'.format(name='Tom')

結果為 'Hi Tom!'

d={'name':'Tom'}

'Hi {name}!'.format_map(d)

結果為 'Hi Tom!'

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...
字元串分割與拼接

s.split(sep=None, maxsplit=-1)将字元串以sep作為分隔符進行劃分,将劃分後的每個片段子串排成一個清單傳回。maxsplit是劃分的最大次數(預設-1為不設上限)。若在字元串中沒找到指定分隔符,則将原字元串作為單一進制素放入清單。'a,b,c'.split(',')

結果為 ['a','b','c']

s.rsplit(sep=None, maxsplit=-1)用法同上,隻不過是從右邊開始劃分字元串,清單中内容的順序仍舊為從左到右。詳見右例。'a,b,c'.rsplit(',',maxsplit=1)

結果為 ['a,b','c']

'a,b,c'.rsplit(',')

結果仍為 ['a','b','c']

splitlines([keepends])将多行字元串按行進行分隔成清單,若參數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'

python rfind函數用法_Python文法速查:字元串格式簡單處理、子串查找與判斷方法?...
字元串編碼

s.encoding(encoding="utf-8", errors="sctrict")傳回字元串的編碼後位元組流版本,傳回類型為bytes。預設為嚴格檢錯模式,隻要在轉換過程中發現錯誤,即引發UnicodeError錯誤。常用的encoding參數:

'ascii'、'utf-16'、'utf-32'、

'gb2312'(國标)、

'gbk' (gb2312的超集)

覺得文章還不錯的話不妨收藏起來慢慢看,有任何建議或看法歡迎大家在評論區分享讨論!

成長離不開與優秀的夥伴共同學習,如果你需要好的學習環境,好的學習資源,項目教程,零基礎學習,這裡歡迎每一位熱愛Python的小夥伴,點選:Python學習圈