- Python 3.6從入門到精通(視頻教學版)
- 王英英
- 2503字
- 2019-12-06 14:20:01
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é)果
- 密碼學原理與Java實現(xiàn)
- ASP.NET MVC4框架揭秘
- 構(gòu)建移動網(wǎng)站與APP:HTML 5移動開發(fā)入門與實戰(zhàn)(跨平臺移動開發(fā)叢書)
- 重學Java設計模式
- ASP.NET程序設計教程
- C語言程序設計教程
- Unity 2D Game Development Cookbook
- SQL Server數(shù)據(jù)庫管理與開發(fā)兵書
- 智能手機APP UI設計與應用任務教程
- R用戶Python學習指南:數(shù)據(jù)科學方法
- 編程改變生活:用Python提升你的能力(進階篇·微課視頻版)
- Java 9 Programming By Example
- C++程序設計教程
- 軟件工程與UML案例解析(第三版)
- Python全棧開發(fā):基礎(chǔ)入門