027-字符串的方法

字符串的方法

關(guān)于字符串的方法有很多,通過(guò)下表進(jìn)行簡(jiǎn)單的羅列。

方法 含義
capitalize() 將字符串的第一個(gè)字符修改為大寫(xiě),其他字符全部改為小寫(xiě)
casefold 將字符串的所有字符都修改為小寫(xiě)
center(width[,fillchar]) 當(dāng)字符個(gè)數(shù)大于width時(shí),字符串不變;
當(dāng)字符個(gè)數(shù)小于width時(shí),字符串劇中,并在左右填充空格,以達(dá)到width指定寬度;
fillchar可選,指定填充的字符(默認(rèn)是空格)
count(sub[,start[,end]]) 返回sub參數(shù)在字符串里邊出現(xiàn)的次數(shù);
start和end參數(shù)可選,指定統(tǒng)計(jì)范圍
encode(encoding='utf-8',errors='strict') 以encoding參數(shù)指定的編碼格式對(duì)字符串進(jìn)行編碼, 并返回errors參數(shù)指定出錯(cuò)時(shí)的處理方式. 默認(rèn)是拋出UnicodeError異常, 還可以使用 'ignore' \ 'replace' \ 'xmlcharrefreplace' \ 'backslashreplace' 等處理方式.
endswith(sub[,start[,end]]) 檢查字符串是否以sub參數(shù)結(jié)束. 如果是則返回True,否則返回False;Start和end參數(shù)可選,指定范圍。
expandtabs(tabsize=8) 把字符串中的制表符(\t)轉(zhuǎn)換為空格代替
find(sub[,start[,end]]) 檢查sub參數(shù)是否包含在字符串中,如果有則返回第一個(gè)出現(xiàn)位置的索引值,否則返回-1;
start和end參數(shù)可選,表示范圍。
index(sub[,start[,end]]) 跟find()方法一樣,不過(guò)該方法如果找不到,將跑出一個(gè)ValueError異常
isalnum() 如果字符串全部由字母或者數(shù)字構(gòu)成,則返回True,否則False
isalpha() 如果字符串全部由字母構(gòu)成,則返回True,否則False
isdecimal() 如果字符串全部由十進(jìn)制數(shù)字構(gòu)成,則返回True,否則False
isdigit() 如果字符串僅由數(shù)字購(gòu)成則返回True,否則返回False
islower() 如果字符串僅由小寫(xiě)字母構(gòu)成則返回True,否則返回False
isnumeric() 如果字符僅由數(shù)值構(gòu)成則返回True,否則False
isspace 如果字符串僅由空白字符構(gòu)成則返回True,否則返回False
istitle() 如果是標(biāo)題化字符串,則返回True,否則False(標(biāo)題化是指所有的單詞均以大寫(xiě)字母開(kāi)始,其余字母皆小寫(xiě))
isupper() 如果字符串僅由大寫(xiě)字母構(gòu)成則返回True,否則False
join(iterable) 以字符串作為分隔符,插入到iterable參數(shù)迭代出來(lái)的所有字符串之間;
如果iterable中包含任何非字符串值,則拋出TypeError異常
ljust(width[,fillchar]) 當(dāng)字符串個(gè)數(shù)大于width時(shí),字符串不變;
當(dāng)字符個(gè)數(shù)小于width時(shí),左對(duì)齊字符串,并在右邊填充空格以達(dá)到width寬度;
fillchar參數(shù)可選,制定填充的字符(默認(rèn)是空格)
lower() 將字符串的所有大寫(xiě)字母修改為小寫(xiě)字母
lstrip([chars]) 刪除字符串左邊的所有空白字符;
chars參數(shù)可選,制定待刪除的字符集
partition(sep) 找到sep參數(shù)第一次出現(xiàn)的位置,并將字符串切分為一個(gè)三元組(sep前面的字符串,sep,sep后面的字符串);
如果字符串中不包含sep,則返回三元組('原字符串','','')
replace(old,new[,count]) 將字符串中的old參數(shù)替換為new參數(shù)。
替換順序?yàn)閺淖蟮接?br>count參數(shù)可選,表示最多替換次數(shù)不超過(guò)count
rfind(sub[,start[,end]]) 類似于find()方法,只不過(guò)是從右往左查找
rindex(sub[,start[,end]]) 類似于index的方法,只不過(guò)是從右往左查找
rjust(width[,fillchar]) 當(dāng)字符串個(gè)數(shù)大于width時(shí),字符串不變;
當(dāng)字符個(gè)數(shù)小于width時(shí),右對(duì)齊字符串,并在左邊填充空格以達(dá)到width寬度;
fillchar參數(shù)可選,制定填充的字符(默認(rèn)是空格)
rpartition(sep) 類似partition()方法,不過(guò)是從右往左查找
rstrip([chars]) 刪除字符串右邊的所有空白字符;
chars參數(shù)可選,制定待刪除的字符集
split(sep=None,maxsplit=-1) 以空白字符作為分隔符對(duì)字符串進(jìn)行分割;
sep參數(shù)制定分隔符,默認(rèn)是空白字符;
maxsplit參數(shù)設(shè)置最大分割次數(shù)
splitlines([keepends]) 以換行符作為分隔符對(duì)字符串進(jìn)行分割;
keepends參數(shù)設(shè)置最大分割次數(shù)
startswith(prefix[,start[,end]]) 檢查字符串是否以prefix參數(shù)開(kāi)頭,如果是則返回True,否則返回False;
start和end參數(shù)可選,表示范圍
strip([chars]) 刪除字符串前后所有空白字符;
chars參數(shù)可選,指定待刪除的字符集
swapcase() 將字符串中的大小寫(xiě)字符反轉(zhuǎn)
title() 以標(biāo)題化的形式格式化字符串
translate(table) 根據(jù)table的規(guī)則(可以由str.maketrans('a','b')定制)轉(zhuǎn)換字符串中的字符
upper() 將字符串的所有小寫(xiě)字母修改為大寫(xiě)字母
zfill(width) 當(dāng)字符個(gè)數(shù)大于width時(shí),字符串不變;
當(dāng)字符個(gè)數(shù)小于width時(shí),返回長(zhǎng)度為width的字符串,原字符串右對(duì)齊,前面用0填充

終于寫(xiě)完了,可累死我了。

其中我拿isalpha()這個(gè)方法做了個(gè)嘗試,發(fā)現(xiàn),所謂的由字母構(gòu)成,這個(gè)字母,幾乎包含任何語(yǔ)言中的字母。

>>> b = 'β'
>>> b.isalpha()
True         //希臘字母
>>> c = 'Д'
>>> c.isalpha()
True      //俄語(yǔ)字母
>>> c = '?'
>>> c.isalpha()
True
>>> c = '?'
>>> c.isalpha()
True      //已經(jīng)廢棄的俄文字母
>>> c = '??'
>>> c.isalpha()
True      //阿拉伯語(yǔ)字母
>>> c = '.'
>>> c.isalpha()
False      //標(biāo)點(diǎn)符號(hào)
>>> c = '???'
>>> c.isalpha()
True      //阿拉伯語(yǔ)字母
>>> c = '?'
>>> c.isalpha()
True
>>> c = 'あ'
>>> c.isalpha()
True      //日語(yǔ)字母
>>> c = '?'
>>> c.isalpha()
True      //韓語(yǔ)字母
>>> c = '大'
>>> c.isalpha()
True    //中文漢字?
>>> c = '我'
>>> c.isalpha()
True    //中文漢字?
>>> c = '我ai'
>>> c.isalpha()|
True    //中文漢字與英文字母混排?
>>> c = '我2'
>>> c.isalpha()
False      //中文漢字與數(shù)字混排?

經(jīng)過(guò)嘗試發(fā)現(xiàn),這個(gè)地方的alpha,不僅僅指英文字母,應(yīng)該說(shuō)是包括一切語(yǔ)言的字母或字。唯獨(dú)不支持?jǐn)?shù)字和標(biāo)點(diǎn)符號(hào)。

而對(duì)于isdecimal()這個(gè)方法,書(shū)本上的表述也是不準(zhǔn)確的。decimal應(yīng)該指的是十進(jìn)制的正整數(shù)。測(cè)試如下:

>>> c = '520'
>>> c.isdecimal()
True      //正整數(shù)
>>> c = '3.14'
>>> c.isdecimal()
False      //浮點(diǎn)數(shù)
>>> c = '-520'
>>> c.isdecimal()
False      //負(fù)整數(shù)
>>> c = '0'
>>> c.isdecimal()
True      //零

然而關(guān)于isdecimal()、isdigit()和isnumeric()這三個(gè)方法,我最后還是沒(méi)有弄明白。先放在這里吧。等將來(lái)用到的時(shí)候,在仔細(xì)辨別,或許是我現(xiàn)在的知識(shí)儲(chǔ)備還不夠吧。

推薦一個(gè)博客文章,不知道是否正確,僅供參考:
isdigit()、isnumeric()和isdecimal()的區(qū)別

還有一個(gè)比較容易弄混淆的是split()方法。在這里提供一個(gè)說(shuō)明文章:
PYTHON中String類的split()方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容