Python第六章字符串_第1頁
Python第六章字符串_第2頁
Python第六章字符串_第3頁
Python第六章字符串_第4頁
Python第六章字符串_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2022-2-101 概述概述 通用序列操作通用序列操作 字符串格式化字符串格式化 字符串方法字符串方法 正則表達式簡介正則表達式簡介2022-2-102 在在Python中,字符串是除數(shù)字外最重要的中,字符串是除數(shù)字外最重要的數(shù)據(jù)類型。字符串無處不在:將字符串輸出數(shù)據(jù)類型。字符串無處不在:將字符串輸出到屏幕上;從用戶的鍵盤輸入讀取字符串;到屏幕上;從用戶的鍵盤輸入讀取字符串;文件通常被視為大型字符串;網(wǎng)頁大部分是文件通常被視為大型字符串;網(wǎng)頁大部分是由文本組成的。由文本組成的。 字符串是一種聚合數(shù)據(jù)結構,可充分利用索字符串是一種聚合數(shù)據(jù)結構,可充分利用索引和切片引和切片用于從字符串中提取子串

2、。用于從字符串中提取子串。 而而Python正則表達式庫,是一種用來處理正則表達式庫,是一種用來處理字符串的微型語言,但功能強大。字符串的微型語言,但功能強大。2022-2-103 Python中,字符串、列表和元組都屬于中,字符串、列表和元組都屬于序列。序列。 序列有一些通用的操作。包括:索引(序列有一些通用的操作。包括:索引(indexing)、分片()、分片(slicing)、加()、加(adding)、乘()、乘(multiplying)、檢查)、檢查某個元素是否屬于序列的成員(成員資格某個元素是否屬于序列的成員(成員資格)、計算序列長度、找出最大元素和最?。?、計算序列長度、找出最大元

3、素和最小元素等。元素等。2022-2-104 序列中的所有元素都是有編號的序列中的所有元素都是有編號的從從0開始開始遞增。這些元素可以通過編號分別訪問。遞增。這些元素可以通過編號分別訪問。索引有正索引和負索引,可根據(jù)實際情況索引有正索引和負索引,可根據(jù)實際情況選用。選用。 字符串就是一個由字符組成的序列,處理字符串就是一個由字符組成的序列,處理字符串時,經(jīng)常需要訪問其中的各個字符字符串時,經(jīng)常需要訪問其中的各個字符。索引。索引0指向第指向第1個字符。個字符。2022-2-1052022-2-1062022-2-107執(zhí)行結果:執(zhí)行結果:2022-2-108執(zhí)行結果:執(zhí)行結果: 與使用索引訪問單

4、個元素類似,可以使用分片操作與使用索引訪問單個元素類似,可以使用分片操作來訪問一定范圍內的元素。分片是實際應用中經(jīng)常來訪問一定范圍內的元素。分片是實際應用中經(jīng)常使用的技術,被截取的部分稱為使用的技術,被截取的部分稱為“子串子串” Python 3支持的分片格式為:支持的分片格式為:Si:j:k 表示:索引表示:索引S對象中的元素,從索引為對象中的元素,從索引為i直到索引為直到索引為j-1,每隔,每隔k個元素索引一次,第三個限制個元素索引一次,第三個限制k為步長為步長,默認為,默認為1,也可以使用負數(shù)作為步長,步長,也可以使用負數(shù)作為步長,步長-1表表示分片將會從右至左進行而不是通常的從左至右,

5、示分片將會從右至左進行而不是通常的從左至右,實際效果主是將序列反轉。實際效果主是將序列反轉。 在在Python中,還可以使用中,還可以使用split()函數(shù)來截取字函數(shù)來截取字符串。符串。2022-2-1092022-2-1010執(zhí)行結果:執(zhí)行結果:2022-2-1011執(zhí)行結果:執(zhí)行結果:2022-2-10123、序列相加(字符串連接、合并)、序列相加(字符串連接、合并) 之前介紹過,使用之前介紹過,使用“+”完成。除此之外,還可完成。除此之外,還可以使用以使用join函數(shù)和函數(shù)和reduce函數(shù)實現(xiàn)字符串的合函數(shù)實現(xiàn)字符串的合并。注意:不同類型的數(shù)據(jù)不能相加。并。注意:不同類型的數(shù)據(jù)不能相

6、加。 如:如:4、乘法、乘法 用數(shù)字用數(shù)字x乘以一個序列會生成新的序列,在新的乘以一個序列會生成新的序列,在新的序列中,原來的序列被重復序列中,原來的序列被重復x次。次。 如:如: 為了檢查一個值是否在序列中,可以使用為了檢查一個值是否在序列中,可以使用in運算符。該運算符檢查某個條件是否為運算符。該運算符檢查某個條件是否為真,若為真返回真,若為真返回True,否則返回,否則返回False。 例如:例如:2022-2-1013 len、min和和max都是內置函數(shù)。都是內置函數(shù)。 len返回序列中包含的元素個數(shù)。返回序列中包含的元素個數(shù)。 min返回序列中的最小值。返回序列中的最小值。 max

7、返回序列中的最大值。返回序列中的最大值。 例如:例如:2022-2-1014 課堂練習一2022-2-10151、字符串格式化、字符串格式化 C語言使用函數(shù)語言使用函數(shù)printf()格式化輸出結果,格式化輸出結果,Python也提供了類似功能。也提供了類似功能。 Python將若干值插入帶有將若干值插入帶有“%”標記的字符串標記的字符串中,從而可以按照指定格式輸出字符串。中,從而可以按照指定格式輸出字符串。 語法:語法: %s % str1 %s %s % (str1, str2)2022-2-10162022-2-1017執(zhí)行結果:執(zhí)行結果:2022-2-1018執(zhí)行結果:執(zhí)行結果:符號符

8、號描述描述符號符號描述描述%c格式化字符及其格式化字符及其ASCII碼碼%f格式化浮點數(shù)字,可指定小數(shù)格式化浮點數(shù)字,可指定小數(shù)點后的精度點后的精度%s格式化字符串格式化字符串%e用科學計數(shù)法格式化浮點數(shù)用科學計數(shù)法格式化浮點數(shù)%d格式化整數(shù)格式化整數(shù)%E作用同作用同%e%u格式化無符號整數(shù)格式化無符號整數(shù)%g根據(jù)值的大小決定使用根據(jù)值的大小決定使用%f或或%e%o格式化無符號八進制數(shù)格式化無符號八進制數(shù)%G作用同作用同%g%x格式化無符號十六進制數(shù)格式化無符號十六進制數(shù)%p用十六進制數(shù)格式化變量的地用十六進制數(shù)格式化變量的地址址%X格式化無符號十六進制數(shù)(大格式化無符號十六進制數(shù)(大寫)寫)

9、%若在字符串中輸出若在字符串中輸出“%”,需,需要使用要使用“%”2022-2-1019 在字段寬度和精度之間還可以放置一個在字段寬度和精度之間還可以放置一個“標志標志”,該標志,該標志可以是零、加號、減號或空格。零表示數(shù)字將會用可以是零、加號、減號或空格。零表示數(shù)字將會用0填充。填充。2022-2-1020執(zhí)行結果:執(zhí)行結果: 計算機中存在可見字符與不可見字符??梢娪嬎銠C中存在可見字符與不可見字符??梢娮址告I盤上的字母、數(shù)字和符號。不可見字符指鍵盤上的字母、數(shù)字和符號。不可見字符是指換行、回車、制表符等字符。字符是指換行、回車、制表符等字符。 對于不可見字符,對于不可見字符,Python使

10、用的方法類似使用的方法類似于于C語言,都是使用語言,都是使用“”作為轉義字符。作為轉義字符。 Python還提供了函數(shù)還提供了函數(shù)strip()、lstrip()、rstrip()去除字符串中的轉義字符。去除字符串中的轉義字符。2022-2-1021符號符號描述描述符號符號描述描述反斜線反斜線v縱向制表符縱向制表符單引號單引號r回車符回車符”雙引號雙引號f換頁符換頁符a發(fā)出系統(tǒng)響鈴聲發(fā)出系統(tǒng)響鈴聲o八進制數(shù)代表的字符八進制數(shù)代表的字符b退格符退格符x十六進制數(shù)代表的字符十六進制數(shù)代表的字符n換行符換行符000終止符,其后的字符串全部忽略終止符,其后的字符串全部忽略t橫向制表符橫向制表符2022

11、-2-10222022-2-1023執(zhí)行結果:執(zhí)行結果: Python字符串自帶了大量很有用的函數(shù),要查字符串自帶了大量很有用的函數(shù),要查看這些函數(shù),可調用看這些函數(shù),可調用dir并將參數(shù)指定為任何字符并將參數(shù)指定為任何字符串(如:串(如:dir( ))。)。 雖無必要準確記住所有函數(shù)功能,但最好有個大雖無必要準確記住所有函數(shù)功能,但最好有個大致了解,這樣有益于需要時去查詢具體使用。致了解,這樣有益于需要時去查詢具體使用。 字符串函數(shù)的詳細介紹可參閱其文檔字符串或字符串函數(shù)的詳細介紹可參閱其文檔字符串或Python在線文檔(在線文檔(/3/)。)。

12、此處介紹常用的字符串函數(shù)。此處介紹常用的字符串函數(shù)。2022-2-1024 用于檢測字符串是否為特定格式的函數(shù),用于檢測字符串是否為特定格式的函數(shù),它們組成了一個最大的字符串函數(shù)組。它們組成了一個最大的字符串函數(shù)組。 測試函數(shù)都返回測試函數(shù)都返回True或或False,因此也稱,因此也稱為布爾函數(shù)或謂詞。為布爾函數(shù)或謂詞。2022-2-1025函數(shù)名函數(shù)名何時返回何時返回True函數(shù)名函數(shù)名何時返回何時返回Trues.endswith(t)s以字符串以字符串t結尾結尾s.islower()s只包含小寫字母只包含小寫字母s.startswith(t) s以字符串以字符串t打頭打頭s.isnume

13、ric()s只包含數(shù)字只包含數(shù)字s.isalnum()s只包含字母和數(shù)只包含字母和數(shù)字字s.isprintable()s只包含可打印字只包含可打印字符符s.isalpha()s只包含字母只包含字母s.isspace()s只包含空白字符只包含空白字符s.isdecimal()s只包含表示十進只包含表示十進制數(shù)字的字符制數(shù)字的字符s.istitle()s是個大小寫符合是個大小寫符合標題要求的字符串標題要求的字符串s.isdigit()s只包含數(shù)字字符只包含數(shù)字字符s.isupper()s只包含大寫字母只包含大寫字母s.isidentifier()s是合法的標識符是合法的標識符t in ss包含字符

14、串包含字符串t2022-2-10262022-2-1027函數(shù)名函數(shù)名返回值返回值s.find(t)若未找到字符串若未找到字符串t,則返回,則返回-1;否則返回;否則返回t在在s中的起始位置中的起始位置s.rfind(t)與與find相同,但從右往左查找相同,但從右往左查找s.index(t)與與find相同,但如果在相同,但如果在s中找不到中找不到t,則,則引發(fā)引發(fā)ValueError異常異常s.rindex(t)與與index相同,但從右往左查找相同,但從右往左查找2022-2-1028 說明:函數(shù)說明:函數(shù)index和和find之間的差別在于沒有找到指定之間的差別在于沒有找到指定子串的情

15、形。函數(shù)子串的情形。函數(shù)index引發(fā)異常引發(fā)異常ValueError,而函,而函數(shù)數(shù)find將返回將返回-1。2022-2-1029執(zhí)行結果:執(zhí)行結果:函數(shù)名函數(shù)名返回的字符串返回的字符串s.replace(old,new) 將將s中的每個中的每個old替換為替換為news.expandtabs(n)將將s中的每個制表符擴展為空格,空格寬度為中的每個制表符擴展為空格,空格寬度為n2022-2-1030 Python字符串自帶了兩個替換函數(shù),如下表所字符串自帶了兩個替換函數(shù),如下表所示。示。 注意:使用替換函數(shù)可輕松地刪除字符串中的子注意:使用替換函數(shù)可輕松地刪除字符串中的子串。串。2022-

16、2-1031執(zhí)行結果:執(zhí)行結果: 之前介紹過,之前介紹過,Python可使用可使用“+”連接不連接不同的字符串。同的字符串。 除此之外,還可以使用除此之外,還可以使用join函數(shù)(是函數(shù)(是split方法的逆方法)和方法的逆方法)和reduce函數(shù)實現(xiàn)字符串函數(shù)實現(xiàn)字符串的合并。的合并。2022-2-10322022-2-1033執(zhí)行結果:執(zhí)行結果:2022-2-1034執(zhí)行結果:執(zhí)行結果:函數(shù)函數(shù)返回的字符串返回的字符串s.partition(t)將將s拆分為三個字符串(拆分為三個字符串(head、t和和tail),其中),其中head為為t前面的子串,前面的子串,tail為為t后面的子串。

17、返回值為后面的子串。返回值為元組元組s.rpartition(t)與與partition相同,但從相同,但從s的右端開始搜索的右端開始搜索t。返回值。返回值為元組為元組s.split(t)以以t為分隔符,將為分隔符,將s劃分成一系列子串,并返回一個由劃分成一系列子串,并返回一個由這些子串組成的列表這些子串組成的列表s.rsplit(t)與與split相同,但從相同,但從s的右端開始搜索的右端開始搜索ts.splitlines()返回一個由返回一個由s中的各行組成的列表中的各行組成的列表2022-2-1035 拆分函數(shù)將字符串拆分成多個子串。如下表所示。拆分函數(shù)將字符串拆分成多個子串。如下表所示

18、。2022-2-1036執(zhí)行結果:執(zhí)行結果:2022-2-1037執(zhí)行結果:執(zhí)行結果: 在實際應用中,經(jīng)常需要將日期類型與字在實際應用中,經(jīng)常需要將日期類型與字符串類型互相轉換。符串類型互相轉換。 Python提供了提供了time模塊處理日期和時間模塊處理日期和時間。函數(shù)。函數(shù)strftime()可以實現(xiàn)從時間到字符可以實現(xiàn)從時間到字符串的轉換。串的轉換。 字符串到時間的轉換要進行兩次轉換,需字符串到時間的轉換要進行兩次轉換,需要使用要使用time模塊和模塊和datetime類。類。2022-2-1038 聲明:聲明: strftime(format, tuple)-string 說明:說明:

19、 參數(shù)參數(shù)format表示格式化日期的特殊字符。例如:表示格式化日期的特殊字符。例如:“%Y-%m-%d”相當于相當于“yyyy-MM-dd”. 參數(shù)參數(shù)tuple表示需要轉換的時間,用元組存儲。元組中表示需要轉換的時間,用元組存儲。元組中的元素分別表示年、月、日、時、分、秒。的元素分別表示年、月、日、時、分、秒。 函數(shù)返回一個表示時間的字符串。函數(shù)返回一個表示時間的字符串。2022-2-1039 第一次轉換:調用函數(shù)第一次轉換:調用函數(shù)strptime()將字符串轉將字符串轉換為一個元組。其聲明為:換為一個元組。其聲明為: strptime(string, format)-struct_ti

20、me 函數(shù)返回一個存放時間的元組。函數(shù)返回一個存放時間的元組。 第二次轉換:將表示年、月、日的第二次轉換:將表示年、月、日的3個變量傳遞個變量傳遞給函數(shù)給函數(shù)datetime()。datetime類的類的datetime()函數(shù)格式為:函數(shù)格式為: datetime(year, month, day, hour, minute, second, microsecond,tzinfo) 函數(shù)返回一個函數(shù)返回一個date類型的變量。類型的變量。2022-2-1040符號符號描述描述符號符號描述描述%a英文星期的簡寫英文星期的簡寫%M分鐘數(shù),取值在分鐘數(shù),取值在0159之間之間%A英文星期的完整拼寫

21、英文星期的完整拼寫%j顯示從本年第顯示從本年第1天開始到當天的天天開始到當天的天數(shù)數(shù)%b英文月份的簡寫英文月份的簡寫%w顯示今天是星期幾,顯示今天是星期幾,0表示星期天表示星期天%B英文月份的完整拼寫英文月份的完整拼寫%W顯示當天屬于本年的第幾周,以星顯示當天屬于本年的第幾周,以星期一作為一周的第一條進行計算期一作為一周的第一條進行計算%c顯示本地的日期和時間顯示本地的日期和時間%x本地的當天日期本地的當天日期%d日期數(shù),取值在日期數(shù),取值在131之間之間%X本地的當天時間本地的當天時間%H小時數(shù),取值在小時數(shù),取值在0023之間之間%y年份,取值在年份,取值在0099之間之間%I小時數(shù),取值

22、在小時數(shù),取值在0112之間之間%Y年份的完整數(shù)字年份的完整數(shù)字%m月份,取值在月份,取值在0112之間之間2022-2-10412022-2-1042執(zhí)行結果:執(zhí)行結果:函數(shù)名函數(shù)名返回的字符串返回的字符串s.capitalize()將將s0改為大寫,其余小寫改為大寫,其余小寫s.lower()讓讓s的所有字母都小寫的所有字母都小寫s.upper()讓讓s的所有字母都大寫的所有字母都大寫s.swapcase()將小寫字母改為大寫,并將大寫字母改為小寫將小寫字母改為大寫,并將大寫字母改為小寫s.title()讓讓s的大小寫符合標題的要求的大小寫符合標題的要求2022-2-1043 說明:在以上

23、函數(shù)中,說明:在以上函數(shù)中,Python都創(chuàng)建并返回一個新字符都創(chuàng)建并返回一個新字符串,串,Python不會真正修改原字符串。不會真正修改原字符串。2022-2-1044函數(shù)名函數(shù)名返回的字符串返回的字符串s.center(n,ch)包含包含n個字符的字符串,其中個字符的字符串,其中s位于中間,兩邊用字符位于中間,兩邊用字符ch填充填充s.ljust(n,ch)包含包含n個字符的字符串,其中個字符的字符串,其中s位于左邊,右邊用字符位于左邊,右邊用字符ch填充填充s.rjust(n,ch)包含包含n個字符的字符串,其中個字符的字符串,其中s位于右邊,左邊邊用字位于右邊,左邊邊用字符符ch填充填

24、充s.format(vars)包含用于設置字符串格式的微型語言,詳見:包含用于設置字符串格式的微型語言,詳見:/3.4/library/string.html#formatspec2022-2-10452022-2-1046執(zhí)行結果:執(zhí)行結果:函數(shù)名函數(shù)名返回的字符串返回的字符串s.strip(ch)從從s開頭和末尾刪除所有包含在字符串開頭和末尾刪除所有包含在字符串ch中的字符中的字符s.lstrip(ch)從從s開頭(左端)刪除所有包含在字符串開頭(左端)刪除所有包含在字符串ch中的字符中的字符s.rstrip(ch)從從s末尾(右端)刪除所有包含

25、在字符串末尾(右端)刪除所有包含在字符串ch中的字符中的字符2022-2-1047 剝除函數(shù)用于刪除字符串開頭或末尾多余的字符。如下表剝除函數(shù)用于刪除字符串開頭或末尾多余的字符。如下表所示。所示。 默認情況下,剝除空白字符;如果指定了字符串參數(shù),則默認情況下,剝除空白字符;如果指定了字符串參數(shù),則剝除該字符串中的字符。剝除該字符串中的字符。2022-2-1048執(zhí)行結果:執(zhí)行結果:2022-2-1049執(zhí)行結果:執(zhí)行結果: Python直接使用直接使用“=”“”“!=”操作符比較兩操作符比較兩個字符串的內容。如果比較的兩個變量的類型不個字符串的內容。如果比較的兩個變量的類型不相同、比較的內容也

26、不相同。相同、比較的內容也不相同。 若要比較字符串的部分內容,可以先截取子串,若要比較字符串的部分內容,可以先截取子串,再使用再使用“=”“”“!=”操作符進行比較。操作符進行比較。 若要比較字符串的開頭和結尾部分,更方便的方若要比較字符串的開頭和結尾部分,更方便的方式是使用式是使用startswith()或或endswith()函數(shù)。函數(shù)。 startswith()與與endswith()的聲明為:的聲明為: startswith(substring, start ,end) endswith(substring, start ,end)2022-2-10502022-2-1051執(zhí)行結果:

27、執(zhí)行結果:2022-2-1052執(zhí)行結果:執(zhí)行結果: 一、假定給定兩個字符串(它們可能是空串)一、假定給定兩個字符串(它們可能是空串)s1和和s2,要將這兩個串合并在一起。要求是:要將這兩個串合并在一起。要求是:s1串的第一個字符串的第一個字符與與s2串的第一個字符連在一起,后續(xù)以此類推。若一個串的第一個字符連在一起,后續(xù)以此類推。若一個串的長度大于另一個串的長度,則保留長串的剩余字符,串的長度大于另一個串的長度,則保留長串的剩余字符,即連接到新串的末尾即可。例如:若即連接到新串的末尾即可。例如:若s1=abcd、s2=efghi,則新串為:,則新串為:aebfcgdhi。 編寫函數(shù)編寫函數(shù)l

28、aceStrings(s1,s2),完成上述功能。,完成上述功能。 二、編寫函數(shù)二、編寫函數(shù)OnlyCharNum(s),對于給定的字符串,對于給定的字符串只顯示字母和數(shù)字。只顯示字母和數(shù)字。2022-2-1053 雖然雖然Python字符串提供了眾多實用的函數(shù),但實際處理字符串提供了眾多實用的函數(shù),但實際處理字符串時,常常需要更強大的工具。鑒于此,字符串時,常常需要更強大的工具。鑒于此,Python提提供了一種用于復雜字符串處理的微型語言供了一種用于復雜字符串處理的微型語言正則表達式,正則表達式,但但正則表達式并不是正則表達式并不是Python的一部分。的一部分。 正則表達式是用于處理字符串

29、的強大工具,擁有自己獨特正則表達式是用于處理字符串的強大工具,擁有自己獨特的語法以及一個獨立的處理引擎,效率上可能不如的語法以及一個獨立的處理引擎,效率上可能不如str自自帶的方法,但功能十分強大。帶的方法,但功能十分強大。實際上,正則表達式是一種實際上,正則表達式是一種簡練描繪一組字符串的方式,可用于高效地執(zhí)行常見的字簡練描繪一組字符串的方式,可用于高效地執(zhí)行常見的字符串處理任務,如匹配、替換和分拆字符串。符串處理任務,如匹配、替換和分拆字符串。 使用正則表達式編寫一些邏輯驗證非常方便,如:電子郵使用正則表達式編寫一些邏輯驗證非常方便,如:電子郵件及電話號碼的格式驗證。件及電話號碼的格式驗證。Python提供了提供了re模塊實現(xiàn)正模塊實現(xiàn)正則表達式的驗證。則表達式的驗證。2022-2-1054 正則表達式正則表達式是是包含元字符包含元字符(metacharacter)的列表的列表。 Python支持的正則表達式元字符和語法支持的正則表達式元字符和語法2022-2-1055函函 數(shù)數(shù)描描 述述compile(pattern, flag

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論