官术网_书友最值得收藏!

4.4 內(nèi)置的字符串方法

在Python中,字符串的方法有很多,主要是因為字符串中string模塊中繼承了很多方法。本節(jié)將對幾種常用的方法進行講解。

4.4.1 capitalize()方法

capitalize()方法將字符串的第一個字符轉(zhuǎn)化為大寫,其他字符轉(zhuǎn)化為小寫。

capitalize()方法的語法格式如下:

    str.capitalize()

其中,str為需要轉(zhuǎn)化的字符串。下面通過示例來學習。

    >>>str = "i can because I think I can"
    >>>tt=str.capitalize()+":我行,因為我相信我行!"
    >>>print (tt)

運行結(jié)果如圖4-24所示。

圖4-24 運行結(jié)果

特別需要注意的是,如果字符串的首字符不是字母,那么該字符串中的第一個字符不會轉(zhuǎn)換為大寫,而轉(zhuǎn)換為小寫。

例如:

    >>>str="123 I can because I think I can "
    >>>str.capitalize()
    >>>str="@ I can because I think I can "
    >>>str.capitalize()

運行結(jié)果如圖4-25所示。

圖4-25 運行結(jié)果

4.4.2 count()方法

count()方法用于統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù),可選參數(shù)為在字符串搜索的開始與結(jié)束位置。

count()方法的語法格式如下:

    str.count(sub, start= 0,end=len(string))

其中,sub為搜索的子字符串;start為字符串開始搜索的位置,默認為第一個字符,第一個字符索引值為0;end為字符串中結(jié)束搜索的位置,默認為字符串的最后一個位置。

例如:

    >>>str="The best preparation for tomorrow is doing your best today"
    >>>s='b'
    >>>print ("字符b出現(xiàn)的次數(shù)為: ", str.count(s))
    >>>s='best '
    >>>print ("best出現(xiàn)的次數(shù)為:", str.count(s,0,6))
    >>>print ("best出現(xiàn)的次數(shù)為:", str.count(s,0,40))
    >>>print ("best出現(xiàn)的次數(shù)為:", str.count(s,0,80))

運行結(jié)果如圖4-26所示。

圖4-26 運行結(jié)果

4.4.3 find()方法

find()方法檢測字符串中是否包含子字符串。如果包含子字符串,就返回開始的索引值;否則就返回-1。

find()方法的語法格式如下:

    str.find(str, beg=0, end=len(string)

其中,str為指定檢索的字符串;beg為開始索引,默認為0;end為結(jié)束索引,默認為字符串的長度。例如:

    >>> str1 = "青海長云暗雪山,孤城遙望玉門關(guān)。"
    >>> str2 = "玉門"
    >>> print (str1.find(str2))
    >>> print (str1.find(str2,10))
    >>> print (str1.find(str2,13,15))

運行結(jié)果如圖4-27所示。

圖4-27 運行結(jié)果

4.4.4 index()方法

index()方法檢測字符串中是否包含子字符串。如果包含子字符串,就返回開始的索引值,否則就會報一個異常。

index()方法的語法格式如下:

    str.index(str, beg=0, end=len(string))

其中,str為指定檢索的字符串;beg為開始索引,默認為0;end為結(jié)束索引,默認為字符串的長度。例如:

    >>>str1 = "青海長云暗雪山,孤城遙望玉門關(guān)。"
    >>>str2 = "玉門"
    >>>print (str1.index(str2))
    >>>print (str1.index (str2,10))
    >>>print (str1.index(str2,13,15))

運行結(jié)果如圖4-28所示。

圖4-28 運行結(jié)果

可見,該方法與find()方法一樣,只是如果str不在string中,就會報一個異常。

4.4.5 isalnum()方法

isalnum()方法檢測字符串是否由字母和數(shù)字組成。

isalnum()方法語法格式如下:

    str.isalnum()

如果字符串中至少有一個字符并且所有字符都是字母或數(shù)字,就返回True;否則就返回False。例如:

    >>>str1 = "Whateverisworthdoingisworthdoingwell"   #字符串沒有空格
    >>>print (str1.isalnum())
    >>>str1="Whatever is worth doing is worth doing well"   #這里添加了空格
    >>>print (str1.isalnum())

運行結(jié)果如圖4-29所示。

圖4-29 運行結(jié)果

4.4.6 join()方法

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

join()方法的語法格式如下:

    str.join(sequence)

其中,sequence為要連接的元素序列。

例如:

    >>>s1 =""
    >>>s2 ="*"
    >>>s3 ="#"
    #字符串序列
    >>>e1=("黃", "沙", "百", "戰(zhàn)", "穿", "金", "甲")
    >>>e2=("不", "破", "樓", "蘭", "終", "不", "還")
    >>> print (s1.join( e1 ))
    >>> print (s2.join( e2 ))
    >>> print (s3.join( e2 ))

運行結(jié)果如圖4-30所示。

圖4-30 運行結(jié)果

注意:被連接的元素必須是字符串,如果是其他的數(shù)據(jù)類型,運行時就會報錯。

4.4.7 isalpha()方法

isalpha()方法檢測字符串是否只由字母或漢字組成。如果字符串至少有一個字符并且所有字符都是字母或漢字,就返回True;否則就返回False。

isalpha()方法的語法格式如下:

    str.isalpha()

例如:

    >>>s1 = "Believe相信"
    >>>print (s1.isalpha())
    >>>s1 = "大漠風塵日色昏,紅旗半卷出轅門。"
    >>>print (s1.isalpha())

運行結(jié)果如圖4-31所示。

圖4-31 運行結(jié)果

4.4.8 isdigit()方法

isdigit()方法檢測字符串是否只由數(shù)字組成。如果字符串中只包含數(shù)字,就返回True;否則就返回False。

isdigit()方法的語法格式如下:

    str.isdigit()

例如:

    >>>s1 = "123456789"
    >>>print (s1.isdigit())
    >>>s1 = "Believe123456789"
    >>>print (s1.isdigit())

運行結(jié)果如圖4-32所示。

圖4-32 運行結(jié)果

4.4.9 low ()方法

low ()方法將字符串中的所有大寫字符轉(zhuǎn)化為小寫字符。

low()方法的語法格式如下:

    str.lower()

其中,str為指定需要轉(zhuǎn)化的字符串,該方法沒有參數(shù)。

例如:

    >>>s1 ="HAPPINESS"
    >>>print('使用low()方法后的效果:',s1.lower())
    >>>s2 ="Happiness"
    >>>print('使用low()方法后的效果:',s2.lower())

運行結(jié)果如圖4-33所示。從結(jié)果可以看出,字符串中的大寫字母全部轉(zhuǎn)化為小寫字母了。

圖4-33 運行結(jié)果

如果想實現(xiàn)“不區(qū)分大小寫”功能,就可以使用lower()方法。例如,在一個字符串中查找某個子字符串并忽略大小寫:

    >>>s1 = "HAPPINESS"
    >>>s2 = "Ss"
    >>>s1.find(s2)                 #都不轉(zhuǎn)化為小寫,找不到匹配的字符串
    >>>s1.lower().find(s2)           #被查找字符串轉(zhuǎn)化為小寫,找不到匹配的字符串
    >>>s1.lower().find(s2.lower())     #全部轉(zhuǎn)化為小寫,找不到匹配的字符串

運行結(jié)果如圖4-34所示。從結(jié)果可以看出,字符串中的大寫字母全部轉(zhuǎn)化為小寫字母后,即可匹配到對應的子字符串。

圖4-34 運行結(jié)果

4.4.10 max()方法

max()方法返回字符串中的最大值。

max()方法的語法格式如下:

    str.max()

其中,str為指定需要查找的字符串,該方法沒有參數(shù)。

例如:

    >>>s1 ="abcdefgh"
    >>>max(s1)
    >>>s2 ="abcdefghABCDEFGH "
    >>>max(s2)

運行結(jié)果如圖4-35所示。從結(jié)果可以看出,若出現(xiàn)相同字母的大小寫,則小寫字母整體大于大寫字母。

圖4-35 運行結(jié)果

4.4.11 min()方法

min()方法返回字符串中的最小值。

min()方法的語法格式如下:

    str.min()

其中,str為指定需要查找的字符串,該方法沒有參數(shù)。

例如:

    >>>s1 ="abcdefgh"
    >>>min(s1)
    >>>s2 ="abcdefghABCDEFGH "
    >>>min(s2)

運行結(jié)果如圖4-36所示。從結(jié)果可以看出,若出現(xiàn)相同字母的大小寫,則大寫字母整體小于小寫字母。

圖4-36 運行結(jié)果

4.4.12 replace()方法

replace()方法用于把字符串中的舊字符串替換為新字符串。

replace()方法的語法格式如下:

    str.replace(old, new[, max])

其中,old為將被替換的子字符串;new為新字符串,用于替換old子字符串;max為可選參數(shù),表示替換不超過max次。

例如:

    >>>s1="最近采購貨物為冰箱"
    >>>print(s1.replace("冰箱", "洗衣機"))
    >>>s1="一片兩片三四片 五片六片七八片 九片十片片片飛 飛入蘆花皆不見"
    >>>print(s1.replace("片","頁",1))
    >>>print(s1.replace("片","頁",2))
    >>>print(s1.replace("片","頁",10))
    >>>print(s1.replace("片","頁"))

運行結(jié)果如圖4-37所示。從結(jié)果可以看出,若制定第三個參數(shù),則替換從左到右進行,替換次數(shù)不能超過指定的次數(shù);若不指定第三個參數(shù),則所有匹配的字符都將被替換。

圖4-37 運行結(jié)果

4.4.13 swapcase ()方法

swapcase()方法用于對字符串的大小寫字母進行轉(zhuǎn)換,即將字符串中小寫字母轉(zhuǎn)換為大寫、大寫字母轉(zhuǎn)為小寫。

swapcase()方法的語法格式如下:

    str.swapcase ()

其中,str為指定需要查找的字符串,該方法沒有參數(shù)。返回結(jié)果為大小寫字母轉(zhuǎn)換后生成的新字符串。

例如:

    >>>s1 ="Happiness is a way station between too much and too little "
    >>>print ('原始的字符串:',s1)
    >>>print('轉(zhuǎn)換后的字符串:',s1.swapcase())

運行結(jié)果如圖4-38所示。從結(jié)果可以看出,調(diào)用swapcase()方法后,字符串中的大小寫將會進行相互轉(zhuǎn)換。

圖4-38 運行結(jié)果

4.4.14 title ()方法

title()方法返回“標題化”的字符串,即所有單詞都以大寫開始,其余字母均為小寫。

title ()方法的語法格式如下:

    str.title()

其中,str為指定需要查找的字符串,該方法沒有參數(shù)。返回結(jié)果為大小寫字母轉(zhuǎn)換后生成的新字符串。

例如:

    >>>s1 ="Happiness is a way station between too much and too little "
    >>>print ('原始的字符串:',s1)
    >>>print('轉(zhuǎn)換后的字符串:',s1.title())

運行結(jié)果如圖4-39所示。從結(jié)果可以看出,調(diào)用title()方法后,字符串中所有單詞都以大寫開始,其余字母均為小寫。

圖4-39 運行結(jié)果

主站蜘蛛池模板: 仪征市| 建德市| 教育| 同心县| 张家界市| 马龙县| 博野县| 泸溪县| 温泉县| 富蕴县| 阿图什市| 大连市| 虹口区| 长春市| 临洮县| 宁国市| 阜新市| 东莞市| 南澳县| 嘉定区| 永昌县| 攀枝花市| 全州县| 宿州市| 右玉县| 区。| 汕尾市| 铁力市| 普兰店市| 固阳县| 金沙县| 崇仁县| 城固县| 临邑县| 永年县| 威远县| 广宗县| 威海市| 临洮县| 张家口市| 镇原县|