溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中str的常用命令有哪些

發(fā)布時間:2021-10-29 13:04:43 來源:億速云 閱讀:163 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python中str的常用命令有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    str 字符串

    例如:

    name = "adam"
    name1 = "周大福"

    命令語句的條件參數(shù)配置格式

    center(self,width,fillchar= None)

    self:可以直接忽略

    width:必須有參數(shù)

    fillchar= None:可以不用單獨設(shè)置參數(shù)

    凡有參數(shù) = None的 都可以理解為 可以不用單獨設(shè)置此參數(shù)

    str 里有一些常用的命令

    1、capitalize

    首字母大寫

    name = "adam"
    v = name.capitalize()	#name內(nèi)的字符串首字母大寫
    print(type(v),v)

    2、casefold和lower

    所有變小寫

    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)

    3、center

    設(shè)置字符串長度并將內(nèi)容劇中,空白位置進行填充并且何可設(shè)置填充的符號默認填充空格

    name = "adam"
    v = name.center(25,"+")		#在name賦值的字符串的前后各增加加號 ,使得整體字符串占一共有8個字符之前name的賦值字符串劇中,并且賦值給v
    print(type(v),v)

    4、count

    尋找字符串中的子序列或字符出現(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)

    5、endswith和startswith

    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)

    6、expandtabs

    將\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)

    7、find

    從頭往后找到第一個子序列獲取其前面有多少個字符,也可以規(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命令

    8、format

    格式化,將一個字符串中的占位符替換為指定的值“大括號內(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,男

    9、format_map

    (字典)。。。。。

    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,男

    10、isalnum

    判斷字符串中是否只有字母 或 數(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)

    11、isalpha

    判斷字符串中是否只含有字母 或 漢字,輸出布爾值

    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)

    12、isdecimal、isdigit、isnumeric

    他們時用來判斷字符串是否只是數(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)

    13、isidentifier

    測試字符串是不是以 字母數(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() )

    14、islower、lower、isupper、upper

    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)

    15、isprintable

    判斷字符串中是否含有不可見或不可打印的 字符比如 \n \t 等

    print('\tabc'.isprintable())
    print('abc\n'.isprintable())
    print('\tabc\n'.isprintable())
    print('abc'.isprintable())

    16、isspace

    判斷字符串是否全部都是空格

    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

    17、istitle、title

    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

    18、join

    在字符與字符 中間加上 設(shè)置好的間隔符當(dāng)變量值中只有一個字符的時候則什么都不做,可以設(shè)置添加的符號

    test = '我是張三,我八歲了'
    test1 = '我'
    print(test) #我是張三,我八歲了
    x = ' '
    v = x.join(test)
    print(v)    #我 是 張 三 , 我 八 歲 了
    v1 = x.join(test1)
    print(v1)    #我

    19、ljus、rjust、center、zfill

    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

    20、lstrip 、rstrip、strip

    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

    21、translate、maketrans

    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

    22、partition、rpartition、split、rsplit、splitlines() 、splitlines(True) 、splitlines(Fales)

    partition 把字符串分割為3份 從字符串的左側(cè)向右尋找 設(shè)置的分隔符號 進行分割,分割符號會被單獨分割成中間的那部分

    rpartition 把字符串分割為3份 從字符串的右側(cè)向左尋找 設(shè)置的分隔符號 進行分割,分割符號會被單獨分割成中間的那部分

    ps partitionrpartition需要設(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']

    23、swapcase

    大小寫轉(zhuǎn)換 ,把字符串里面的大小寫全部轉(zhuǎn)換

    name = 'Adam'
    v = name.swapcase()
    print(v)    #aDAM

    24、replace

    替換,從左往右尋找匹配的子序列,然后全部進行替換,可以設(shè)定替換幾個,("原變量中的子序列","替換后的子序列",替換幾個子序列)

    name = 'adamadamadam'
    v = name.replace('da','yyy')
    print(v)    #ayyymayyymayyym

    感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中str的常用命令有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

    向AI問一下細節(jié)

    免責(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)容。

    AI