您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python中str的常用命令有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
例如:
name = "adam"
name1 = "周大福"
命令語句的條件參數(shù)配置格式
center(self,width,fillchar= None)
self:
可以直接忽略
width:
必須有參數(shù)
fillchar= None:
可以不用單獨設(shè)置參數(shù)
凡有參數(shù) = None的 都可以理解為 可以不用單獨設(shè)置此參數(shù)
首字母大寫
name = "adam" v = name.capitalize() #name內(nèi)的字符串首字母大寫 print(type(v),v)
所有變小寫
name = "aDam" v = name.casefold() #name內(nèi)的字符串變成小寫(它可以處理不同的語種內(nèi)的字母大小寫) print(type(v),v) name = "aDam" v2 = name.lower() #name內(nèi)的字符串變成小寫(它只能處理英文) print(type(v2),v2)
設(shè)置字符串長度并將內(nèi)容劇中,空白位置進行填充并且何可設(shè)置填充的符號默認填充空格
name = "adam" v = name.center(25,"+") #在name賦值的字符串的前后各增加加號 ,使得整體字符串占一共有8個字符之前name的賦值字符串劇中,并且賦值給v print(type(v),v)
尋找字符串中的子序列或字符出現(xiàn)的次數(shù),并可以設(shè)置起始的尋找位數(shù)
name = "adam" v = name.count('a',2,4) #計算a在name賦值的字符串內(nèi) 出現(xiàn)過多少次,不寫(,2,4)的話默認是沖頭到位找,寫了就是從地2到4位尋找 print (v)
endswith
判斷結(jié)尾的字符是什么 可以設(shè)置 起始位置
startswith
判斷開頭的字符是什么 可以設(shè)置 起始位置 注意設(shè)置的開始位置要前移一個單位
name = "adam" v = name.endswith('d',1,2) #判斷 name賦值的字符串 從第一個字符到第二個字符結(jié)束 結(jié)尾的字母是不是d v1 = name.startswith('a',0,2)#判斷name賦值的字符串,從第0位到第2位 是不是以 字母a開頭 print (v) print (v1)
將\t 前面字符位數(shù)用空格補至x位 ,如\t 前字符位數(shù)等于x 則 直接用x個空格替換\t 如\t前字符位數(shù)大于x 則在前面字符最末尾補x余數(shù)個空格(輸出結(jié)果不再顯示\t)
test = '12345\t6789' v = test.expandtabs(8) v1 = test.expandtabs(3) v2 = test.expandtabs(5) print(v) print(v1) print(v2) #應(yīng)用實例: test = '姓名\t性別\t身高\n張三\t男\(zhòng)t180\n張三\t男\(zhòng)t180\n張三\t男\(zhòng)t180' v = test.expandtabs(10) print(v)
從頭往后找到第一個子序列獲取其前面有多少個字符,也可以規(guī)定尋找范圍,設(shè)定的搜索范圍邏輯關(guān)系位 起始位數(shù) <= 被搜索范圍 <結(jié)束位置。
name = "adamadamadam" #創(chuàng)建變量name并賦值adamadamadam v = name.find('ma',6,9) #設(shè)定搜索ma子序列從6到8位 print (v) #顯示v的值 #結(jié)果為:7
PS:當(dāng)find找不到目標(biāo)子序列的時候會賦值位-1而另一個尋找命令index在找不到目標(biāo)子序列時會直接程序報錯,所以推薦使用find命令
格式化,將一個字符串中的占位符替換為指定的值“大括號內(nèi)的就是占位符”
name = "adam" #創(chuàng)建變量name并賦值為adam xingBie = "男" #創(chuàng)建變量xingBie并賦值為"男" xianShi = "I am {name1},{xingBie1}" #創(chuàng)建變量xianShi并賦值為"I am {name1},{xingBie1}" print(xianShi) #顯示xianShi #結(jié)果:I am {name1},{xingBie1} v = xianShi.format(name1 = name ,xingBie1 = xingBie) #使用變量name和xingBie替換xianShi變量中的name1和xingBie1,并且賦值給v print(v) #顯示v #結(jié)果:I am adam,男
format的另一種書寫格式,可以使用數(shù)字占位,并且在賦值的時候程序會默認依次對數(shù)字賦值,創(chuàng)建占位符號時需要從0開始使用數(shù)字占位
name = "adam" #創(chuàng)建變量name并賦值為adam xingBie = "男" #創(chuàng)建變量xingBie并賦值為"男" xianShi = "I am {0},{1}" #創(chuàng)建變量xianShi并賦值為"I am {0},{1}" print(xianShi) #顯示xianShi #結(jié)果:I am {0},{1} v1 = xianShi.format(name ,xingBie) #使用變量name 和 xingBie的值替換xianShi中的 0 和 1的值,并且賦值給v1 print(v1) #顯示v1 #結(jié)果:I am adam,男
(字典)。。。。。
name = "adam" #創(chuàng)建變量name并賦值為adam xingBie = "男" #創(chuàng)建變量xingBie并賦值為"男" xianShi = "I am {name1},{xingBie1}" #創(chuàng)建變量xianShi并賦值為"I am {name1},{xingBie1}" print(xianShi) #顯示xianShi v = xianShi.format(name1 = name ,xingBie1 = xingBie) #使用變量name和xingBie替換xianShi變量中的name1和xingBie1,并且賦值給v print(v) #顯示v #結(jié)果:I am adam,男 v1 = xianShi.format_map({'name1':name,'xingBie1':xingBie}) #使用format_map的格式給v1賦值 print(v1) #顯示v1 #結(jié)果:I am adam,男
判斷字符串中是否只有字母 或 數(shù)字,輸出布爾值
name = 'adam123' #給變量name賦值adam name1 = 'adam+' #給name1賦值adam+ name2 = 'adam' name3 = '123' v = name.isalnum() #判斷name中是否只含有字母或數(shù)字,并把布爾值賦值給v v1 = name1.isalnum() #判斷name1中是否只含有字母或數(shù)字,并把布爾值賦值給v1 v2 = name2.isalnum() v3 = name3.isalnum() print(v) print(v1) print(v2) print(v3)
判斷字符串中是否只含有字母 或 漢字,輸出布爾值
name = 'adam123' #給變量name賦值adam123 name1 = 'adam+' #給name1賦值adam+ name2 = 'adam' #給name2賦值adam name3 = '張三' #給name3賦值張三 v = name.isalpha() v1 = name1.isalpha() v2 = name2.isalpha() v3 = name3.isalpha() print(v) print(v1) print(v2) print(v3)
他們時用來判斷字符串是否只是數(shù)字輸出布爾值
isdecimal
:只能判斷阿拉伯?dāng)?shù)字為 真 (推薦用這個比較準(zhǔn))
isdigit
:阿拉伯?dāng)?shù)字和符號數(shù)“123和③” 為真
isnumeric
:阿拉伯?dāng)?shù)字、符號數(shù)字、羅馬數(shù)字、漢字?jǐn)?shù),均為真“123、③、Ⅲ、四”
test1 = '123' #賦值 test2 = '1a' #這個也可以是16進制數(shù) test3 = '②' #符號數(shù)字 ② test4 = 'Ⅲ' #羅馬數(shù)字3,這是一個字符 test5 = '四' #漢字?jǐn)?shù)字四 vecimal1 = test1.isdecimal() #判斷字符串是否為數(shù)字 vecimal2 = test2.isdecimal() vecimal3 = test3.isdecimal() vecimal4 = test4.isdecimal() vecimal5 = test5.isdecimal() vigit1 = test1.isdigit() #判斷字符串是否為數(shù)字 vigit2 = test2.isdigit() vigit3 = test3.isdigit() vigit4 = test4.isdigit() vigit5 = test5.isdigit() vnumeric1 = test1.isnumeric() vnumeric2 = test2.isnumeric() vnumeric3 = test3.isnumeric() vnumeric4 = test4.isnumeric() vnumeric5 = test5.isnumeric() print(vecimal1, vecimal2, vecimal3, vecimal4, vecimal5) #打印isdecimal判斷的結(jié)果 print(vigit1, vigit2, vigit3, vigit4, vigit5) #打印isdigit判斷的結(jié)果 print(vnumeric1, vnumeric2, vnumeric3, vnumeric4, vnumeric5)
測試字符串是不是以 字母數(shù)字下劃線組成并且不以字母或下劃線開頭
PS:這個命令不會因為 字符串是python的關(guān)鍵字 就判斷為假
print( "if".isidentifier() ) print( "def".isidentifier() ) print( "class".isidentifier() ) print( "_a".isidentifier() ) print( "中國123a".isidentifier() ) print( "123".isidentifier() ) print( "3a".isidentifier() ) print( "".isidentifier() )
islower
判斷字符串是否全部為小寫
lower
把字符串內(nèi)所有字符所有字符變成小寫
isupper
判斷字符串是否全部為大寫
upper
把字符串內(nèi)所有字符所有字符變成大寫
name = 'Adam' name1 = 'ADAM' name2 = 'adaM' name3 = 'aDam' v = name.islower() v1 = name1.islower() v2 = name2.islower() v3 = name3.islower() print('Adam',v,'ADAM',v1,'adaM',v2,'aDam',v3) x = name.lower() x1 = name1.lower() x2 = name2.lower() x3 = name3.lower() print('Adam',x,'ADAM',x1,'adaM',x2,'aDam',x3) n = name.isupper() n1 = name1.isupper() n2 = name2.isupper() n3 = name3.isupper() print('Adam',n,'ADAM',n1,'adaM',n2,'aDam',n3) k = name.upper() k1 = name1.upper() k2 = name2.upper() k3 = name3.upper() print('Adam',k,'ADAM',k1,'adaM',k2,'aDam',k3)
判斷字符串中是否含有不可見或不可打印的 字符比如 \n \t 等
print('\tabc'.isprintable()) print('abc\n'.isprintable()) print('\tabc\n'.isprintable()) print('abc'.isprintable())
判斷字符串是否全部都是空格
test = ' ' test1 = ' a' test2 = ' a ' test3 = '' v = test.isspace() v1 = test1.isspace() v2 = test2.isspace() v3 = test3.isspace() print(v,v1,v2,v3) #True False False False
istitle
判斷是否為標(biāo)題(所有單詞首字母均為大寫)
title
將字符串轉(zhuǎn)換成標(biāo)題也就是把所有字母的 首字母轉(zhuǎn)換成大寫
test = 'wo shi zhang san , wo ba sui le ' v = test.istitle() print(v) #False v1 = test.title() print(v1) #Wo Shi Zhang San , Wo Ba Sui Le v2 = v1.istitle() print(v2) #True
在字符與字符 中間加上 設(shè)置好的間隔符當(dāng)變量值中只有一個字符的時候則什么都不做,可以設(shè)置添加的符號
test = '我是張三,我八歲了' test1 = '我' print(test) #我是張三,我八歲了 x = ' ' v = x.join(test) print(v) #我 是 張 三 , 我 八 歲 了 v1 = x.join(test1) print(v1) #我
ljust
字符串靠左對齊 不夠位數(shù)的用設(shè)置的字符補齊
rjust
字符串靠右對齊 不夠位數(shù)的用設(shè)置的字符補齊
center
字符串劇中對齊 不夠位數(shù)的用設(shè)置的字符補齊,如果只需要補1個字符,則補在字符串左側(cè)
zfill
只能在字符串左側(cè)填充0
name = 'adam' v = name.ljust(6,'*') #文字左對齊 不至6位用*補位 v1 = name.rjust(6,'*') #文字右對齊 不至6位用*補位 v2 = name.center(6,'*') #文字劇中 不至6位用*補位 v3 = name.zfill(6) #文字右對齊 不至6位用*補位 print(v,v1,v2,v3) #adam** **adam *adam* 00adam
lstrip
從左向右匹配刪除空格,直到遇到不匹配的那個字符
rstrip
從右向左匹配刪除空格,直到遇到不匹配的那個字符
strip
去掉兩側(cè)的空格
PS:他們還可以去掉 /t /n這樣的功能符(默認下),還可以指定去掉任意字符,匹配原則是 優(yōu)先最多匹配原則
name = ' ad am ' v = name.lstrip() #去掉左側(cè)的空格直到遇到其他字符 v1 = name.rstrip() #去掉右側(cè)的空格直到遇到其他字符 v2 = name.strip() #去掉兩側(cè)的空格直到遇到其他字符 print(v) #ad am print(v1) # ad am print(v2) #ad am
translate:
執(zhí)行映射轉(zhuǎn)換
maketrans:
創(chuàng)建映射轉(zhuǎn)換關(guān)系,先寫入原字符表,再寫入要轉(zhuǎn)換成的字符表,也可以再定義一個需要刪除的字符表
yuanZiFu = 'abcde' #定義原始匹配字符 bianGengZiFu = '12345' #定義匹配后變更的字符 shanChuZiFu = 'fghij' #定義原始匹配刪除的字符 zhuanHuanBiao = str.maketrans(yuanZiFu,bianGengZiFu) #創(chuàng)建字符映射轉(zhuǎn)換表(匹配yuanZiFu轉(zhuǎn)換成bianGengZiFu) zhuanHuanShanChuBiao = str.maketrans(yuanZiFu,bianGengZiFu,shanChuZiFu) #創(chuàng)建字符映射轉(zhuǎn)換刪除表(匹配yuanZiFu轉(zhuǎn)換成bianGengZiFu刪除shanChuZiFu) yuanShiZiFuChuan = 'a1b2c3d4e5fagbhcidje' #創(chuàng)建原始字符串 print(yuanShiZiFuChuan.translate(zhuanHuanBiao)) #1122334455f1g2h4i4j5 print(yuanShiZiFuChuan.translate(zhuanHuanShanChuBiao)) #112233445512345
partition
把字符串分割為3份 從字符串的左側(cè)向右尋找 設(shè)置的分隔符號 進行分割,分割符號會被單獨分割成中間的那部分
rpartition
把字符串分割為3份 從字符串的右側(cè)向左尋找 設(shè)置的分隔符號 進行分割,分割符號會被單獨分割成中間的那部分
ps partition
和rpartition
需要設(shè)置分割符
split
可以指定分割的塊數(shù) 左側(cè)向右尋找分割符號 默認是匹配的所有分割符號 全部都進行分割 且分割符號并不會出現(xiàn)在結(jié)果中
rsplit
可以指定分割的塊數(shù) 右側(cè)向左尋找分割符號 默認是匹配的所有分割符號 全部都進行分割 且分割符號并不會出現(xiàn)在結(jié)果中
ps:分割符默認為所有的空字符,包括空格、換行(\n)、制表符(\t)等。
splitlines()
默認根據(jù)換行符號\n 進行分割 且不會保留換行符號
splitlines(True)
根據(jù)換行符號\n 進行分割 且保留換行符號 換行符號出現(xiàn)在被分割模塊的右側(cè)splitlines(Fales) 根據(jù)換行符號\n 進行分割 且不會保留換行符號
x1 = '123\n45\t123\n45\t123\n45\t123\n45' print(x1.partition('5')) #('123\n4', '5', '\t123\n45\t123\n45\t123\n45') print(x1.rpartition('5')) #('123\n45\t123\n45\t123\n45\t123\n4', '5', '') print(x1.split('\n',3)) #['123', '45\t123', '45\t123', '45\t123\n45'] print(x1.rsplit('\t',2)) #['123\n45\t123\n45', '123\n45', '123\n45'] print(x1.splitlines()) #['123', '45\t123', '45\t123', '45\t123', '45'] print(x1.splitlines(True)) #['123\n', '45\t123\n', '45\t123\n', '45\t123\n', '45'] print(x1.splitlines(False)) #['123', '45\t123', '45\t123', '45\t123', '45']
大小寫轉(zhuǎn)換 ,把字符串里面的大小寫全部轉(zhuǎn)換
name = 'Adam' v = name.swapcase() print(v) #aDAM
替換,從左往右尋找匹配的子序列,然后全部進行替換,可以設(shè)定替換幾個,("原變量中的子序列","替換后的子序列",替換幾個子序列)
name = 'adamadamadam' v = name.replace('da','yyy') print(v) #ayyymayyymayyym
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中str的常用命令有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。