python 字符串學(xué)習(xí)

python 字符串的處理松申,可謂十分強(qiáng)大检眯。是值得花費(fèi)實(shí)際去學(xué)習(xí)的凿叠,作為運(yùn)維之前使用的shell處理字符串涩笤,基本上自己寫出來的命令自己都有時候不認(rèn)識,并沒有py簡潔方便盒件。不過依然在看到些老鳥們寫著冗長的shell字符串處理命令的時候心生敬佩蹬碧,就和我看著他們熟練使用五筆打字一樣。以下是python學(xué)習(xí)筆記履恩,使用python3.7版本

#!/usr/bin/env python
# -*- coding: utf-8 -*-

1. 首字母大寫 capitalize()

Python capitalize()將字符串的第一個字母變成大寫,其他字母變小寫锰茉。對于 8 位字節(jié)編碼需要根據(jù)本地環(huán)境呢蔫。
語法
capitalize()方法語法:
str.capitalize()
參數(shù)
無切心。
返回值
該方法返回一個首字母大寫的字符串飒筑。
實(shí)例
str = 'xiaopeng'
re = str1.capitalize()
print(re)
#########執(zhí)行結(jié)果 #############
Xiaopeng

2. 居中 center()

Python center() 返回一個原字符串居中,并使用空格填充至長度 width 的新字符串。默認(rèn)填充字符為空格绽昏。
語法
center()方法語法:
str.center(width[, fillchar])
參數(shù)
width -- 字符串的總寬度协屡。
fillchar -- 填充字符。
返回值
該方法返回一個原字符串居中,并使用空格填充至長度 width 的新字符串全谤。
實(shí)例
str = 'xiaopeng'
re = str1.center(20,"*")
print(re)
#########執(zhí)行結(jié)果 #############
******xiaopeng******

3. 統(tǒng)計(jì)字符串 count()

Python count() 方法用于統(tǒng)計(jì)字符串里某個字符出現(xiàn)的次數(shù)肤晓。可選參數(shù)為在字符串搜索的開始與結(jié)束位置认然。
語法
count()方法語法:
str.count(sub, start= 0,end=len(string))
參數(shù)
sub -- 搜索的子字符串
start -- 字符串開始搜索的位置补憾。默認(rèn)為第一個字符,第一個字符索引值為0。
end -- 字符串中結(jié)束搜索的位置卷员。字符中第一個字符的索引為 0盈匾。默認(rèn)為字符串的最后一個位置。
返回值
該方法返回子字符串在字符串中出現(xiàn)的次數(shù)毕骡。
實(shí)例
str = 'xiaopeng'
re = str1.count("op")
print(re)
#########執(zhí)行結(jié)果 #############
1

4. 檢查結(jié)尾 endswith()

Python endswith() 方法用于判斷字符串是否以指定后綴結(jié)尾削饵,如果以指定后綴結(jié)尾返回True,否則返回False未巫×耍可選參數(shù)"start"與"end"為檢索字符串的開始與結(jié)束位置。
語法
endswith()方法語法:
str.endswith(suffix[, start[, end]])
參數(shù)
suffix -- 該參數(shù)可以是一個字符串或者是一個元素叙凡。
start -- 字符串中的開始位置劈伴。
end -- 字符中結(jié)束位置。
返回值
如果字符串含有指定的后綴返回True握爷,否則返回False宰啦。
實(shí)例
str = 'xiaopeng'
re = str1.endswith('g')
print(re)
#########執(zhí)行結(jié)果 #############
True

5. 檢查開頭 startswith()

Python startswith() 方法用于檢查字符串是否是以指定子字符串開頭,如果是則返回 True饼拍,否則返回 False赡模。如果參數(shù) beg 和 end 指定值,則在指定范圍內(nèi)檢查师抄。
語法
startswith()方法語法:
str.startswith(str, beg=0,end=len(string));
參數(shù)
str -- 檢測的字符串漓柑。
strbeg -- 可選參數(shù)用于設(shè)置字符串檢測的起始位置。
strend -- 可選參數(shù)用于設(shè)置字符串檢測的結(jié)束位置叨吮。
返回值
如果檢測到字符串則返回True辆布,否則返回False。
實(shí)例
str = 'xiaopeng'
re = str1.startswith('x')
print(re)
#########執(zhí)行結(jié)果 #############
True

6. 查找指定字符串 返回位置 find()

Python find() 方法檢測字符串中是否包含子字符串 str 茶鉴,如果指定 beg(開始) 和 end(結(jié)束) 范圍锋玲,則檢查是否包含在指定范圍內(nèi),如果包含子字符串返回開始的索引值涵叮,否則返回-1惭蹂。
語法
find()方法語法:
str.find(str, beg=0, end=len(string))
參數(shù)
str -- 指定檢索的字符串
beg -- 開始索引伞插,默認(rèn)為0。
end -- 結(jié)束索引盾碗,默認(rèn)為字符串的長度媚污。
返回值
如果包含子字符串返回開始的索引值,否則返回-1廷雅。
實(shí)例
str = 'xiaopeng'
re = str1.find("o")
print(re)
#########執(zhí)行結(jié)果 #############
3

7. 格式化 format()

Python2.6 開始耗美,新增了一種格式化字符串的函數(shù) str.format(),它增強(qiáng)了字符串格式化的功能航缀。
基本語法是通過 {} 和 : 來代替以前的 % 商架。
format 函數(shù)可以接受不限個參數(shù),位置可以不按順序芥玉。
實(shí)例
str = 'I am {name}, age {num}'
re = str2.format(name="xiaopeng",num=27)
print(re)
str = = 'I am {0}, age {1}'
re = str2.format("xiaopeng",27)
print(re)
#########執(zhí)行結(jié)果 #############
I am xiaopeng, age 27
I am xiaopeng, age 27

8. 檢測字符串有字母或數(shù)字組成 isalnum()

Python isalnum() 方法檢測字符串是否由字母和數(shù)字組成甸私。
語法
isalnum()方法語法:
str.isalnum()
參數(shù)
無。
返回值
如果 string 至少有一個字符并且所有字符都是字母或數(shù)字則返回 True,否則返回 False
實(shí)例
str= "xiaopeng27"
re = str3.isalnum()
print(re)
#########執(zhí)行結(jié)果 #############
True

9. 轉(zhuǎn)tab expandtabs()

Python expandtabs() 方法把字符串中的 tab 符號('\t')轉(zhuǎn)為空格飞傀,tab 符號('\t')默認(rèn)的空格數(shù)是 8皇型。

語法
expandtabs()方法語法:
str.expandtabs(tabsize=8)
參數(shù)
tabsize -- 指定轉(zhuǎn)換字符串中的 tab 符號('\t')轉(zhuǎn)為空格的字符數(shù)。
返回值
該方法返回字符串中的 tab 符號('\t')轉(zhuǎn)為空格后生成的新字符串砸烦。
實(shí)例
str="name\temail\tpassword\nxiaopeng\txiaopeng@qq.com\t******\nxiaopeng\txiaopeng@qq.com\t******\nxiaopeng\txiaopeng@qq.com\t******\n"
re = str4.expandtabs(20)
print(re)
#########執(zhí)行結(jié)果 #############
name                email               password
xiaopeng            xiaopeng@qq.com     ******
xiaopeng            xiaopeng@qq.com     ******
xiaopeng            xiaopeng@qq.com     ****** 

10. 判斷是否只有字母 isalpha()

Python isalpha() 方法檢測字符串是否只由字母組成弃鸦。
語法
isalpha()方法語法:
str.isalpha()
參數(shù)
無。
返回值
如果字符串至少有一個字符并且所有字符都是字母則返回 True,否則返回 False
實(shí)例
str = 'xiaopeng27'
re = str5.isalpha()
print re
#########執(zhí)行結(jié)果 #############
False

11. 判斷是否只有數(shù)字 isdigit()

Python isdigit() 方法檢測字符串是否只由數(shù)字組成幢痘。
語法
isdigit()方法語法:
str.isdigit()
參數(shù)
無唬格。
返回值
如果字符串只包含數(shù)字則返回 True 否則返回 False。
實(shí)例
str = '2'
re = str6.isdigit()
print(re)
#########執(zhí)行結(jié)果 #############
True

12. 判斷變量名合法性 isidentifier()

Python3 isidentifier() 方法用于判斷字符串是否是有效的 Python 標(biāo)識符颜说,可用來判斷變量名是否合法购岗。
語法
S.isidentifier()
返回值
如果字符串是有效的 Python 標(biāo)識符返回 True,否則返回 False门粪。
實(shí)例
str = 'xiaopeng_27'
re = str7.isidentifier()
print(re)
#########執(zhí)行結(jié)果 #############
True

13. 判斷可打印字符 isprintable()

判斷是否為可打印字符串
語法
str.isprintable()
返回值
如果字符串是不含有不可見字符(\t喊积、\n)返回 True,否則返回 False玄妈。
實(shí)例
str = 'xiaopeng\t'
re=str8.isprintable()
print(re)
#########執(zhí)行結(jié)果 #############
False

14. 檢測只有空格 isspace()

Python isspace() 方法檢測字符串是否只由空格組成乾吻。
語法
isspace()方法語法:
str.isspace()
參數(shù)
無。
返回值
如果字符串中只包含空格拟蜻,則返回 True绎签,否則返回 False.
實(shí)例
str = '\t'
re = str9.isspace()
print(re)
#########執(zhí)行結(jié)果 #############
True

15. 標(biāo)題化 title() istitle()

Python title() 方法返回"標(biāo)題化"的字符串,就是說所有單詞都是以大寫開始,其余字母均為小寫酝锅。
返回值
返回"標(biāo)題化"的字符串,就是說所有單詞都是以大寫開始诡必。

Python istitle() 方法檢測字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫搔扁。
返回值
如果字符串中所有的單詞拼寫首字母是否為大寫爸舒,且其他字母為小寫則返回 True蟋字,否則返回 False.

實(shí)例
str = 'Xiao peng shi ge da shuai ge'
re1 = str.title()
print(re1)
re2 = re1.istitle()
print(re2)
#########執(zhí)行結(jié)果 #############
Xiao Peng Shi Ge Da Shuai Ge
True

16.指定字符拼接 join()

Python join() 方法用于將序列中的元素以指定的字符連接生成一個新的字符串。

語法
join()方法語法:

str.join(sequence)
參數(shù)
sequence -- 要連接的元素序列碳抄。
返回值
返回通過指定字符連接序列中元素后生成的新字符串。

實(shí)例
str = '小鵬是個大帥哥'
re = '$'.join(str)
print(re)
#########執(zhí)行結(jié)果 #############
小$鵬$是$個$大$帥$哥

17. 指定字符填充 ljust()场绿、rjust()

Python ljust() 方法返回一個原字符串左對齊,并使用空格填充至指定長度的新字符串剖效。如果指定的長度小于原字符串的長度則返回原字符串。
返回值
返回一個原字符串左對齊,并使用空格填充至指定長度的新字符串焰盗。如果指定的長度小于原字符串的長度則返回原字符串璧尸。

Python rjust() 返回一個原字符串右對齊,并使用空格填充至長度 width 的新字符串。如果指定的長度小于字符串的長度則返回原字符串熬拒。
返回值
返回一個原字符串右對齊,并使用空格填充至長度 width 的新字符串爷光。如果指定的長度小于字符串的長度則返回原字符串
實(shí)例
str = 'xiaopeng'
re1 = str.ljust(20,"$")
re2 = str.rjust(20,"$")
print(re1)
print(re2)
#########執(zhí)行結(jié)果 #############
xiaopeng$$$$$$$$$$$$
$$$$$$$$$$$$xiaopeng

18. 大小寫轉(zhuǎn)換 判斷 islower()、lower()澎粟、isupper()蛀序、upper()、swapcase()

Python islower() 方法檢測字符串是否由小寫字母組成活烙。

Python lower() 方法轉(zhuǎn)換字符串中所有大寫字符為小寫徐裸。

Python isupper() 方法檢測字符串中所有的字母是否都為大寫。

Python upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母啸盏。

Python swapcase() 方法用于對字符串的大小寫字母進(jìn)行轉(zhuǎn)換重贺。

實(shí)例
str = 'XiaoPeng'
str1 = 'xiao peng shi TU HAO'
re1 = str.islower()
re2 = str.lower()
re3 = str.isupper()
re4 = str.upper()
re5 = str1.swapcase()
print(re1,re2,re3,re4)
print(re5)
#########執(zhí)行結(jié)果 #############
False xiaopeng False XIAOPENG
XIAO PENG SHI tu hao

19. 刪除指定字符串 lstrip()、rstrip()回懦、strip()

Python lstrip() 方法用于截掉字符串左邊的空格或指定字符气笙。

Python rstrip() 刪除 string 字符串末尾的指定字符(默認(rèn)為空格)

Python strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。
注意:該方法只能刪除開頭或是結(jié)尾的字符怯晕,不能刪除中間部分的字符

實(shí)例
str = '$$$Xiao Peng$$$'
re1 = str.lstrip('$')
re2 = str.rstrip('$')
re3 = str.strip('$')
print(re1)
print(re2)
print (re3)
#########執(zhí)行結(jié)果 #############
Xiao Peng$$$
$$$Xiao Peng
Xiao Peng

20. 對應(yīng)關(guān)系maketrans() 潜圃、translate()

Python maketrans() 方法用于創(chuàng)建字符映射的轉(zhuǎn)換表,對于接受兩個參數(shù)的最簡單的調(diào)用方式舟茶,第一個參數(shù)是字符串秉犹,表示需要轉(zhuǎn)換的字符,第二個參數(shù)也是字符串表示轉(zhuǎn)換的目標(biāo)稚晚。
注:兩個字符串的長度必須相同崇堵,為一一對應(yīng)的關(guān)系。

Python translate() 方法根據(jù)參數(shù)table給出的表(包含 256 個字符)轉(zhuǎn)換字符串的字符, 要過濾掉的字符放到 del 參數(shù)中客燕。

實(shí)例
str1 = 'abcdefg'
str2 = '1234567'
str3 = 'asdfghjklzxcvbnm'
re1 = str.maketrans(str1,str2)
print(re1)
re2 = str3.translate(re1)
print(re2)
#########執(zhí)行結(jié)果 #############
{97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54, 103: 55}
1s467hjklzx3v2nm

21.字符串分割 partition() 鸳劳、rpartition()、split() 也搓、splitlines()

partition() 方法用來根據(jù)指定的分隔符將字符串進(jìn)行分割赏廓。如果字符串包含指定的分隔符涵紊,則返回一個3元的元組,第一個為分隔符左邊的子串幔摸,第二個為分隔符本身摸柄,第三個為分隔符右邊的子串。

rpartition() 方法既忆,只是該方法是從目標(biāo)字符串的末尾也就是右邊開始搜索分割符驱负。。如果字符串包含指定的分隔符患雇,則返回一個3元的元組跃脊,第一個為分隔符左邊的子串,第二個為分隔符本身苛吱,第三個為分隔符右邊的子串酪术。

Python split() 通過指定分隔符對字符串進(jìn)行切片,如果參數(shù) num 有指定值翠储,則分隔 num+1 個子字符串

Python splitlines() 按照行('\r', '\r\n', \n')分隔绘雁,返回一個包含各行作為元素的列表,如果參數(shù) keepends 為 False援所,不包含換行符咧七,如果為 True,則保留換行符任斋。

實(shí)例
str1 = 'xiao$peng$shi$tu$hao'
str2 = 'xiao\npeng\nshi\ntu\nhao'
re1 = str1.partition('$')
re2 = str1.rpartition('$')
re3 = str1.split('$')
re4 = str1.split('$',2)
re5 = str2.splitlines()
re6 = str2.splitlines(True)
#########執(zhí)行結(jié)果 #############
('xiao', '$', 'peng$shi$tu$hao')
('xiao$peng$shi$tu', '$', 'hao')
['xiao', 'peng', 'shi', 'tu', 'hao']
['xiao', 'peng', 'shi$tu$hao']
['xiao', 'peng', 'shi', 'tu', 'hao']
['xiao\n', 'peng\n', 'shi\n', 'tu\n', 'hao']

22. 字符串替換 replace()

Python replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串)继阻,如果指定第三個參數(shù)max,則替換不超過 max 次废酷。
語法
replace()方法語法:

str.replace(old, new[, max])
參數(shù)
old -- 將被替換的子字符串瘟檩。
new -- 新字符串,用于替換old子字符串澈蟆。
max -- 可選字符串, 替換不超過 max 次
返回值
返回字符串中的 old(舊字符串) 替換成 new(新字符串)后生成的新字符串墨辛,如果指定第三個參數(shù)max,則替換不超過 max 次趴俘。

實(shí)例
str1 = 'xiao peng shi qiong xiao zi'
re1 = str1.replace('qiong xiao zi','tu hao')
print(re1)
#########執(zhí)行結(jié)果 #############
xiao peng shi tu hao
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睹簇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子寥闪,更是在濱河造成了極大的恐慌太惠,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疲憋,死亡現(xiàn)場離奇詭異凿渊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門埃脏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搪锣,“玉大人,你說我怎么就攤上這事彩掐」怪郏” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵堵幽,是天一觀的道長狗超。 經(jīng)常有香客問我,道長谐檀,這世上最難降的妖魔是什么抡谐? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任裁奇,我火速辦了婚禮桐猬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刽肠。我一直安慰自己溃肪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布音五。 她就那樣靜靜地躺著惫撰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪躺涝。 梳的紋絲不亂的頭發(fā)上厨钻,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音坚嗜,去河邊找鬼夯膀。 笑死,一個胖子當(dāng)著我的面吹牛苍蔬,可吹牛的內(nèi)容都是我干的诱建。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼碟绑,長吁一口氣:“原來是場噩夢啊……” “哼俺猿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起格仲,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤押袍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凯肋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伯病,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了午笛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惭蟋。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖药磺,靈堂內(nèi)的尸體忽然破棺而出告组,到底是詐尸還是另有隱情,我是刑警寧澤癌佩,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布木缝,位于F島的核電站,受9級特大地震影響围辙,放射性物質(zhì)發(fā)生泄漏我碟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一姚建、第九天 我趴在偏房一處隱蔽的房頂上張望矫俺。 院中可真熱鬧,春花似錦掸冤、人聲如沸厘托。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铅匹。三九已至,卻和暖如春饺藤,著一層夾襖步出監(jiān)牢的瞬間包斑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工涕俗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罗丰,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓咽袜,卻偏偏與公主長得像丸卷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子询刹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容