字符串的方法
關(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()方法