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