《Python大數據基礎與實戰》課件-Python大數據基礎與實戰(第4章 字符串)_第1頁
《Python大數據基礎與實戰》課件-Python大數據基礎與實戰(第4章 字符串)_第2頁
《Python大數據基礎與實戰》課件-Python大數據基礎與實戰(第4章 字符串)_第3頁
《Python大數據基礎與實戰》課件-Python大數據基礎與實戰(第4章 字符串)_第4頁
《Python大數據基礎與實戰》課件-Python大數據基礎與實戰(第4章 字符串)_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第四章字符串4.5字符串常量4.4字符串的方法4.2字符串的表示形式4.6字符串的格式化4.3字符串基本操作4.1字符串的編碼方式4.7案例實戰

字符串是一種表示文本的數據類型,字符串(string)中字符可以是ASCII字符、各種符號以及各種Unicode字符。

本章介紹了字符串的編碼方式、字符串的定義、字符串的基本操作、字符串的格式化、字符串提供的方法等內容。4.1字符串的編碼方式4.1字符串的編碼方式

字符串是一種有序字符的集合,用于表示文本數據。

字符串可以包含零個、一個或者多個字符。字符串使用單引號''、雙引號""或三引號(''''''、"""""")作為字符串的界定符。

字符串可以使用ASCII字符、Unicode字符以及各種符號。4.1字符串的編碼方式

Python3.x完全支持中文字符,默認使用UTF8編碼格式,無論是一個數字、英文字母,還是一個漢字,在統計字符串長度時都按一個字符對待和處理。

字符串屬于不可變序列,意味著不可以直接修改字符串的值。4.1字符串的編碼方式>>>'Python語言'.encode('utf8') #采用UTF-8編碼格式進行字符串編碼b'Python\xe8\xaf\xad\xe8\xa8\x80' #字節編碼>>>'Python語言'.encode('gb2312') b'Python\xd3\xef\xd1\xd4'>>>'Python語言'.encode('gb2312').decode('utf8')#編碼和解碼格式不一致,導致錯誤Traceback(mostrecentcalllast):UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xd3inposition6:invalidcontinuationbyte4.1字符串的編碼方式>>>'Python語言'.encode('gb2312').decode('gb2312') #編碼和解碼格式一致,正確顯示內容'Python語言'>>>len("Python語言") #求字符串長度,中文字符和英文字符都算1個8>>>s="hello">>>s[0]="w" #字符串是不可變序列,不允許直接修改其值Traceback(mostrecentcalllast):TypeError:'str'objectdoesnotsupportitemassignment4.1字符串的編碼方式示例:>>>id(s) #id()表示內存地址45901000#修改字符串變量的值會導致重新創建一個對象,并指向這個對象>>>s="Python" >>>id(s)307586484.2字符串的表示形式4.2字符串的表示形式

字符串類型在Python中是十分重要的類型,一般用引號中間添加字符的形式表達。不同于其它語言,Python中雙引號("")與單引號('')是不加區分的,都可以用來表示字符串,一般有如下三種表現方式:1、使用單引號''包含字符'Python''abc''中國'注意:單引號表示的字符串里面不能包含單引號,比如Let'sgo不能使用單引號包含。4.2字符串的表示形式2、使用雙引號""包含字符"PyCharm""ABC""北京"注意:雙引號表示的字符串里面不能包含雙引號,并且只能有一行。3、使用三引號(三對單引號''''''或三對雙引號"""""")包含字符三引號'''或"""表示的字符串可以換行,支持排版較為復雜的字符串,包含在一對三引號之間而且不屬于任何語句的內容被解釋器認為是注釋。'''hello,world!'''4.2字符串的表示形式

單引號、雙引號、三單引號、三雙引號可以互相嵌套,用來表示復雜字符串。例如:'''Jacksaid,"I'mverygood"'''

注意:Python不支持字符類型,Python采用字符串駐留機制,對于短字符串,將其賦值給多個不同的對象時,內存中只有一個副本,多個對象共享該副本。長字符串不遵守駐留機制。

空字符串表示為''或""。

前綴帶r或者R的字符串表示Raw字符串(原始字符串)。

Raw字符串中的所有字符都被看做普通字符,不會處理其中的轉義字符。但是,字符串的最后一個字符不能是“\”。原始字符串主要用于正則表達式、文件路徑或者URL的場合。4.2字符串的表示形式>>>path='C:\Windows\twunk.exe'>>>print(path) #字符\t被轉義為水平制表符C:\Windows wunk.exe#原始字符串,任何字符都不轉義>>>path=r'C:\Windows\twunk.exe'>>>print(path)C:\Windows\twunk.exe4.3字符串基本操作4.3字符串基本操作4.3.1字符串訪問方式字符串包括正向遞增序號和反向遞減序號兩種序號體系。正向遞增序號:0~L-1,以最左側字符序號為0,向右依次遞增,最右側字符序號為L-1。其中L為字符串的長度。反向遞減序號:-L~-1,以最右側字符序號為-1,向左依次遞減,最左側字符序號為-L。4.3字符串基本操作Python字符串提供區間訪問方式,采用[N:M]格式,表示字符串中從N到M(不包含M)的子字符串,其中,N和M為字符串的索引序號,可以混合使用正向遞增序號和反向遞減序號。如果表示中M或者N索引缺失,則表示字符串把開始或結束索引值設為默認值。示例如下:>>>str="Python大數據基礎與實戰">>>print(str[0],str[5],str[-1])Pn戰>>>print(str[2:6])thon>>>print(str[:6])Python>>>print(str[6:])大數據基礎與實戰>>>print(str[:])Python大數據基礎與實戰4.3字符串基本操作4.3.2字符串的轉義如果需要在字符中使用特殊字符時,Python用反斜杠\。反斜杠字符是一個特殊字符,在字符串中表示“轉義”。轉義字符含義轉義字符含義\\反斜線\a響鈴符\'單引號\b退格符\"雙引號\f換頁符\n換行\r回車符\t水平制表符\v垂直制表符\ooo八進制表示的ASCII碼對應的字符\xhh十六進制表示的ASCII碼對應的字符4.3字符串基本操作C語言把空字符“\0”作為字符串的結束標志,但是在Python中,空字符是作為一個普通字符進行處理。例如:>>>s='\0\x61\101'

#一個空字符、一個十六進制和一個八進制表示的ASCII字符>>>s'\x00aA' #非打印字符用十六進制表示>>>len(s) #求字符串長度34.3字符串基本操作4.3.3基本操作符---Python提供了5個字符串的基本操作符,如表所示。操作符描述x+y連接兩個字符串x與yx*n或n*x復制n次字符串xxins如果x是s的子串,返回True,否則返回Falsestr[i]索引,返回第i個字符str[N:M]切片,返回索引第N到M的子串,其中不包含M4.3字符串基本操作

字符串的基本操作符示例如下:>>>s1="Hello"+""+"Python">>>print(s1)HelloPython>>>s2="重要的事情說三遍!"*3>>>print(s2)重要的事情說三遍!重要的事情說三遍!重要的事情說三遍!>>>s3='Python'ins1>>>print(s3)True4.4字符串的方法

4.4字符串的方法

字符串作為常用的一種數據類型,Python提供了很多內建方法,如字符串的查找、索引、取長度、統計、替換和分割等。下面分別加以介紹。字符串查找find()和rfind()函數分別用來查找一個字符串在另一個字符串指定范圍(默認是整個字符串)中首次和最后一次出現的位置,如果不存在則返回-1;index()和rindex()方法用來返回一個字符串在另一個字符串指定范圍中首次和最后一次出現的位置,如果不存在則拋出異常;count()方法用來返回一個字符串在當前字符串中出現的次數。

4.4字符串的方法>>>mystr="Pythonisanexcellentlanguage">>>index=mystr.find("an")>>>print(index)10>>>index=mystr.find("programming")>>>print(index)-1>>>index=mystr.index("excellent",0,30)>>>print(index)13>>>str="ilovepython,iamlearningpython">>>print(str.count("i")) #star和end為默認參數3>>>print(str.count("i",2))

#star值為2,end值為默認參數2

4.4字符串的方法2.字符串分隔split()、rsplit()方法分別用來以指定字符為分隔符,把當前字符串從左往右、從右往左分隔成多個字符串,并返回包含分隔結果的列表。對于split()和rsplit()方法,如果不指定分隔符,則字符串中的任何空白符號(空格、換行符、制表符等)都將被認為是分隔符,把連續多個空白字符看作一個分隔符。partition()和rpartition()用來以指定字符串為分隔符將原字符串分隔為3部分:分隔符前的字符串、分隔符字符串、分隔符后的字符串。如果指定的分隔符不在原字符串中,則返回原字符串和兩個空字符串。

4.4字符串的方法>>>str='WinXP||Win7||Win8||Win10'>>>print(str.split('||'))['WinXP','Win7','Win8','Win10']>>>print(str.split('||',2)) #指定最大分隔次數為2['WinXP','Win7','Win8||Win10']>>>str.partition("||")('WinXP','||','Win7||Win8||Win10')

4.4字符串的方法3.字符串的連接join()方法用來將列表中的多個字符串進行連接,并且在相鄰兩個字符串之間插入指定字符。示例如下:>>>test=["I","love","Python"]>>>s="".join(test) #指定插入字符為空格>>>sIlovePython注意:使用“+”運算符也可以連接字符串,但是效率較低,應優先使用join()方法。

4.4字符串的方法4.字符串的大小寫轉換lower()返回小寫字符串,upper()返回大寫字符串,capitalize()將字符串首字符大寫、title()將字符串中每個單詞首字符大寫、swapcase()完成大小寫互換。>>>s="iamateacher">>>s.lower()'iamateacher'>>>s.upper()'IAMATEACHER'>>>s.capitalize()'Iamateacher'>>>s.title()'IAmATeacher'>>>s.swapcase()'IAMATEACHER'

4.4字符串的方法5.字符串替換replace()方法把字符串中的old(舊字符串)替換成new(新字符串),如果指定第三個參數max,則替換不超過max次。>>>str="thisisstringexample....wow!!!thisisreallystring">>>print(str.replace("is","was"))thwaswasstringexample....wow!!!thwaswasreallystring>>>print(str.replace("is","was",3))thwaswasstringexample....wow!!!thwasisreallystring

4.4字符串的方法6.字符串刪除strip()刪除字符串兩端指定的字符,rstrip()刪除字符串右端指定字符,lstrip()刪除字符串左端指定字符。>>>s="heisastudent\t\t">>>s.strip()#刪除s左右兩端的空白字符'heisastudent'>>>s.rstrip("\t") #刪除s右端的\t的字符'heisastudent'>>>'aabbccddeeeffg'.strip('gaef')'bbccdd'

4.4字符串的方法7.字符串測試isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、isspace()、isupper()、islower(),分別測試字符串是否為數字或字母、是否為字母、是否為數字字符、是否為空白字符、是否為大寫字母以及是否為小寫字母。>>>'1234abcd'.isalnum()True>>>'1234abcd'.isalpha() #全部為英文字母時返回TrueFalse>>>'1234abcd'.isdigit() #全部為數字時返回TrueFalse

4.4字符串的方法8.eval()內置函數eval()嘗試把任意字符串轉化為Python表達式并求值。>>>eval("10*2/5")4.09.startswith()、endswith()這兩個方法用來判斷字符串是否以指定字符串開始或者結束。>>>"test.py".endswith((".py",".cpp",".java"))True>>>"test.py".startswith("test",0)True

4.4字符串的方法10.center()、ljust()、rjust()返回指定寬度的新字符串,原字符串居中、左對齊或右對齊出現在新字符串中,如果指定的寬度大于字符串長度,則使用指定的字符(默認為空格)填充。>>>"let'sbegin".center(20,"+")"++++let'sbegin+++++">>>"let'sbegin".ljust(20,"-")"let'sbegin---------"4.5

字符串常量

4.5字符串常量Python標準庫string中定義了數字字符(string.digits)、標點符號(string.punctuation)、英文字母(string.ascii_letters)、大寫字母(string.ascii_uppercase)、小寫字母(string.ascii_lowercase)等常量。>>>importstring>>>string.digits'0123456789'>>>string.punctuation'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'>>>string.ascii_letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'4.6

字符串的格式化

4.6字符串的格式化4.6.1格式化表達式字符串格式化表達式用%表示,%之前是需要進行格式化的字符串,%之后是需要填入字符串中的實際參數。語法如下:"%格式控制符"%實際參數格式字符轉換%c格式化字符及其ASCII碼%s格式化字符串%d格式化整數%f格式化浮點數字,可指定小數點后的精度

%o格式化無符號八進制數%x格式化無符號十六進制數(小寫字母)

4.6字符串的格式化此外,格式化操作符還有如下輔助命令:m.n:m是數字的總寬度,n是小數位數;-:用于左對齊;+:在正數前面顯示加號;0:顯示的數字前面填充'0'取代空格。>>>print('%f'%3.1415926) #默認保留6位小數3.141593>>>print('%20.2f'%3.1415926)#返回的數字寬度是20位,留取2位小數,默認右對齊

3.14

4.6字符串的格式化4.6.2format()方法<模板字符串>.format(<逗號分隔的參數>)<模板字符串>是由一系列的占位符組成,用來控制字符串中嵌入值的出現位置及格式,<逗號分隔的參數>按照序號順序替換到<模板字符串>的占位符處。占位符如何被替換取決于每個格式說明符,格式說明符以“:”作為其前綴來表示。占位符用大括號{}括起來,如果大括號中沒有序號,則按照位置順序替換。除了通過序號來指定填充的參數外,還可以通過關鍵字參數、下標、字典的key和對象的屬性來填充。

4.6字符串的格式化>>>print('{}:計算機{}的CPU占用率為{}%.'.format('2019-01-30','Python',10))2019-01-30:計算機Python的CPU占用率為10%.>>>names=['Romeo','Juliet']>>>print('Iam{args[0]},Ilove{args[1]}.'.format(args=names))IamRomeo,IloveJuliet.>>>person={'name':'Liu','age':24,'job':'Pythoneer'}>>>print('Iam{person[name]},{person[age]}yearsold,a{person[job]}.'.format(person=person))IamLiu,24yearsold,aPythoneer.4.7

溫馨提示

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

評論

0/150

提交評論