




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章字符串4.5字符串常量4.4字符串的方法4.2字符串的表示形式4.6字符串的格式化4.3字符串基本操作4.1字符串的編碼方式4.7案例實(shí)戰(zhàn)
字符串是一種表示文本的數(shù)據(jù)類型,字符串(string)中字符可以是ASCII字符、各種符號(hào)以及各種Unicode字符。
本章介紹了字符串的編碼方式、字符串的定義、字符串的基本操作、字符串的格式化、字符串提供的方法等內(nèi)容。4.1字符串的編碼方式4.1字符串的編碼方式
字符串是一種有序字符的集合,用于表示文本數(shù)據(jù)。
字符串可以包含零個(gè)、一個(gè)或者多個(gè)字符。字符串使用單引號(hào)''、雙引號(hào)""或三引號(hào)(''''''、"""""")作為字符串的界定符。
字符串可以使用ASCII字符、Unicode字符以及各種符號(hào)。4.1字符串的編碼方式
Python3.x完全支持中文字符,默認(rèn)使用UTF8編碼格式,無(wú)論是一個(gè)數(shù)字、英文字母,還是一個(gè)漢字,在統(tǒng)計(jì)字符串長(zhǎng)度時(shí)都按一個(gè)字符對(duì)待和處理。
字符串屬于不可變序列,意味著不可以直接修改字符串的值。4.1字符串的編碼方式>>>'Python語(yǔ)言'.encode('utf8') #采用UTF-8編碼格式進(jìn)行字符串編碼b'Python\xe8\xaf\xad\xe8\xa8\x80' #字節(jié)編碼>>>'Python語(yǔ)言'.encode('gb2312') b'Python\xd3\xef\xd1\xd4'>>>'Python語(yǔ)言'.encode('gb2312').decode('utf8')#編碼和解碼格式不一致,導(dǎo)致錯(cuò)誤Traceback(mostrecentcalllast):UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xd3inposition6:invalidcontinuationbyte4.1字符串的編碼方式>>>'Python語(yǔ)言'.encode('gb2312').decode('gb2312') #編碼和解碼格式一致,正確顯示內(nèi)容'Python語(yǔ)言'>>>len("Python語(yǔ)言") #求字符串長(zhǎng)度,中文字符和英文字符都算1個(gè)8>>>s="hello">>>s[0]="w" #字符串是不可變序列,不允許直接修改其值Traceback(mostrecentcalllast):TypeError:'str'objectdoesnotsupportitemassignment4.1字符串的編碼方式示例:>>>id(s) #id()表示內(nèi)存地址45901000#修改字符串變量的值會(huì)導(dǎo)致重新創(chuàng)建一個(gè)對(duì)象,并指向這個(gè)對(duì)象>>>s="Python" >>>id(s)307586484.2字符串的表示形式4.2字符串的表示形式
字符串類型在Python中是十分重要的類型,一般用引號(hào)中間添加字符的形式表達(dá)。不同于其它語(yǔ)言,Python中雙引號(hào)("")與單引號(hào)('')是不加區(qū)分的,都可以用來(lái)表示字符串,一般有如下三種表現(xiàn)方式:1、使用單引號(hào)''包含字符'Python''abc''中國(guó)'注意:?jiǎn)我?hào)表示的字符串里面不能包含單引號(hào),比如Let'sgo不能使用單引號(hào)包含。4.2字符串的表示形式2、使用雙引號(hào)""包含字符"PyCharm""ABC""北京"注意:雙引號(hào)表示的字符串里面不能包含雙引號(hào),并且只能有一行。3、使用三引號(hào)(三對(duì)單引號(hào)''''''或三對(duì)雙引號(hào)"""""")包含字符三引號(hào)'''或"""表示的字符串可以換行,支持排版較為復(fù)雜的字符串,包含在一對(duì)三引號(hào)之間而且不屬于任何語(yǔ)句的內(nèi)容被解釋器認(rèn)為是注釋。'''hello,world!'''4.2字符串的表示形式
單引號(hào)、雙引號(hào)、三單引號(hào)、三雙引號(hào)可以互相嵌套,用來(lái)表示復(fù)雜字符串。例如:'''Jacksaid,"I'mverygood"'''
注意:Python不支持字符類型,Python采用字符串駐留機(jī)制,對(duì)于短字符串,將其賦值給多個(gè)不同的對(duì)象時(shí),內(nèi)存中只有一個(gè)副本,多個(gè)對(duì)象共享該副本。長(zhǎng)字符串不遵守駐留機(jī)制。
空字符串表示為''或""。
前綴帶r或者R的字符串表示Raw字符串(原始字符串)。
Raw字符串中的所有字符都被看做普通字符,不會(huì)處理其中的轉(zhuǎn)義字符。但是,字符串的最后一個(gè)字符不能是“\”。原始字符串主要用于正則表達(dá)式、文件路徑或者URL的場(chǎng)合。4.2字符串的表示形式>>>path='C:\Windows\twunk.exe'>>>print(path) #字符\t被轉(zhuǎn)義為水平制表符C:\Windows wunk.exe#原始字符串,任何字符都不轉(zhuǎn)義>>>path=r'C:\Windows\twunk.exe'>>>print(path)C:\Windows\twunk.exe4.3字符串基本操作4.3字符串基本操作4.3.1字符串訪問(wèn)方式字符串包括正向遞增序號(hào)和反向遞減序號(hào)兩種序號(hào)體系。正向遞增序號(hào):0~L-1,以最左側(cè)字符序號(hào)為0,向右依次遞增,最右側(cè)字符序號(hào)為L(zhǎng)-1。其中L為字符串的長(zhǎng)度。反向遞減序號(hào):-L~-1,以最右側(cè)字符序號(hào)為-1,向左依次遞減,最左側(cè)字符序號(hào)為-L。4.3字符串基本操作Python字符串提供區(qū)間訪問(wèn)方式,采用[N:M]格式,表示字符串中從N到M(不包含M)的子字符串,其中,N和M為字符串的索引序號(hào),可以混合使用正向遞增序號(hào)和反向遞減序號(hào)。如果表示中M或者N索引缺失,則表示字符串把開(kāi)始或結(jié)束索引值設(shè)為默認(rèn)值。示例如下:>>>str="Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)">>>print(str[0],str[5],str[-1])Pn戰(zhàn)>>>print(str[2:6])thon>>>print(str[:6])Python>>>print(str[6:])大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)>>>print(str[:])Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)4.3字符串基本操作4.3.2字符串的轉(zhuǎn)義如果需要在字符中使用特殊字符時(shí),Python用反斜杠\。反斜杠字符是一個(gè)特殊字符,在字符串中表示“轉(zhuǎn)義”。轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義\\反斜線\a響鈴符\'單引號(hào)\b退格符\"雙引號(hào)\f換頁(yè)符\n換行\(zhòng)r回車符\t水平制表符\v垂直制表符\ooo八進(jìn)制表示的ASCII碼對(duì)應(yīng)的字符\xhh十六進(jìn)制表示的ASCII碼對(duì)應(yīng)的字符4.3字符串基本操作C語(yǔ)言把空字符“\0”作為字符串的結(jié)束標(biāo)志,但是在Python中,空字符是作為一個(gè)普通字符進(jìn)行處理。例如:>>>s='\0\x61\101'
#一個(gè)空字符、一個(gè)十六進(jìn)制和一個(gè)八進(jìn)制表示的ASCII字符>>>s'\x00aA' #非打印字符用十六進(jìn)制表示>>>len(s) #求字符串長(zhǎng)度34.3字符串基本操作4.3.3基本操作符---Python提供了5個(gè)字符串的基本操作符,如表所示。操作符描述x+y連接兩個(gè)字符串x與yx*n或n*x復(fù)制n次字符串xxins如果x是s的子串,返回True,否則返回Falsestr[i]索引,返回第i個(gè)字符str[N:M]切片,返回索引第N到M的子串,其中不包含M4.3字符串基本操作
字符串的基本操作符示例如下:>>>s1="Hello"+""+"Python">>>print(s1)HelloPython>>>s2="重要的事情說(shuō)三遍!"*3>>>print(s2)重要的事情說(shuō)三遍!重要的事情說(shuō)三遍!重要的事情說(shuō)三遍!>>>s3='Python'ins1>>>print(s3)True4.4字符串的方法
4.4字符串的方法
字符串作為常用的一種數(shù)據(jù)類型,Python提供了很多內(nèi)建方法,如字符串的查找、索引、取長(zhǎng)度、統(tǒng)計(jì)、替換和分割等。下面分別加以介紹。字符串查找find()和rfind()函數(shù)分別用來(lái)查找一個(gè)字符串在另一個(gè)字符串指定范圍(默認(rèn)是整個(gè)字符串)中首次和最后一次出現(xiàn)的位置,如果不存在則返回-1;index()和rindex()方法用來(lái)返回一個(gè)字符串在另一個(gè)字符串指定范圍中首次和最后一次出現(xiàn)的位置,如果不存在則拋出異常;count()方法用來(lái)返回一個(gè)字符串在當(dāng)前字符串中出現(xiàn)的次數(shù)。
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為默認(rèn)參數(shù)3>>>print(str.count("i",2))
#star值為2,end值為默認(rèn)參數(shù)2
4.4字符串的方法2.字符串分隔split()、rsplit()方法分別用來(lái)以指定字符為分隔符,把當(dāng)前字符串從左往右、從右往左分隔成多個(gè)字符串,并返回包含分隔結(jié)果的列表。對(duì)于split()和rsplit()方法,如果不指定分隔符,則字符串中的任何空白符號(hào)(空格、換行符、制表符等)都將被認(rèn)為是分隔符,把連續(xù)多個(gè)空白字符看作一個(gè)分隔符。partition()和rpartition()用來(lái)以指定字符串為分隔符將原字符串分隔為3部分:分隔符前的字符串、分隔符字符串、分隔符后的字符串。如果指定的分隔符不在原字符串中,則返回原字符串和兩個(gè)空字符串。
4.4字符串的方法>>>str='WinXP||Win7||Win8||Win10'>>>print(str.split('||'))['WinXP','Win7','Win8','Win10']>>>print(str.split('||',2)) #指定最大分隔次數(shù)為2['WinXP','Win7','Win8||Win10']>>>str.partition("||")('WinXP','||','Win7||Win8||Win10')
4.4字符串的方法3.字符串的連接join()方法用來(lái)將列表中的多個(gè)字符串進(jìn)行連接,并且在相鄰兩個(gè)字符串之間插入指定字符。示例如下:>>>test=["I","love","Python"]>>>s="".join(test) #指定插入字符為空格>>>sIlovePython注意:使用“+”運(yùn)算符也可以連接字符串,但是效率較低,應(yīng)優(yōu)先使用join()方法。
4.4字符串的方法4.字符串的大小寫轉(zhuǎn)換lower()返回小寫字符串,upper()返回大寫字符串,capitalize()將字符串首字符大寫、title()將字符串中每個(gè)單詞首字符大寫、swapcase()完成大小寫互換。>>>s="iamateacher">>>s.lower()'iamateacher'>>>s.upper()'IAMATEACHER'>>>s.capitalize()'Iamateacher'>>>s.title()'IAmATeacher'>>>s.swapcase()'IAMATEACHER'
4.4字符串的方法5.字符串替換replace()方法把字符串中的old(舊字符串)替換成new(新字符串),如果指定第三個(gè)參數(shù)max,則替換不超過(guò)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.字符串測(cè)試isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、isspace()、isupper()、islower(),分別測(cè)試字符串是否為數(shù)字或字母、是否為字母、是否為數(shù)字字符、是否為空白字符、是否為大寫字母以及是否為小寫字母。>>>'1234abcd'.isalnum()True>>>'1234abcd'.isalpha() #全部為英文字母時(shí)返回TrueFalse>>>'1234abcd'.isdigit() #全部為數(shù)字時(shí)返回TrueFalse
4.4字符串的方法8.eval()內(nèi)置函數(shù)eval()嘗試把任意字符串轉(zhuǎn)化為Python表達(dá)式并求值。>>>eval("10*2/5")4.09.startswith()、endswith()這兩個(gè)方法用來(lái)判斷字符串是否以指定字符串開(kāi)始或者結(jié)束。>>>"test.py".endswith((".py",".cpp",".java"))True>>>"test.py".startswith("test",0)True
4.4字符串的方法10.center()、ljust()、rjust()返回指定寬度的新字符串,原字符串居中、左對(duì)齊或右對(duì)齊出現(xiàn)在新字符串中,如果指定的寬度大于字符串長(zhǎng)度,則使用指定的字符(默認(rèn)為空格)填充。>>>"let'sbegin".center(20,"+")"++++let'sbegin+++++">>>"let'sbegin".ljust(20,"-")"let'sbegin---------"4.5
字符串常量
4.5字符串常量Python標(biāo)準(zhǔn)庫(kù)string中定義了數(shù)字字符(string.digits)、標(biāo)點(diǎn)符號(hào)(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格式化表達(dá)式字符串格式化表達(dá)式用%表示,%之前是需要進(jìn)行格式化的字符串,%之后是需要填入字符串中的實(shí)際參數(shù)。語(yǔ)法如下:"%格式控制符"%實(shí)際參數(shù)格式字符轉(zhuǎn)換%c格式化字符及其ASCII碼%s格式化字符串%d格式化整數(shù)%f格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度
%o格式化無(wú)符號(hào)八進(jìn)制數(shù)%x格式化無(wú)符號(hào)十六進(jìn)制數(shù)(小寫字母)
4.6字符串的格式化此外,格式化操作符還有如下輔助命令:m.n:m是數(shù)字的總寬度,n是小數(shù)位數(shù);-:用于左對(duì)齊;+:在正數(shù)前面顯示加號(hào);0:顯示的數(shù)字前面填充'0'取代空格。>>>print('%f'%3.1415926) #默認(rèn)保留6位小數(shù)3.141593>>>print('%20.2f'%3.1415926)#返回的數(shù)字寬度是20位,留取2位小數(shù),默認(rèn)右對(duì)齊
3.14
4.6字符串的格式化4.6.2format()方法<模板字符串>.format(<逗號(hào)分隔的參數(shù)>)<模板字符串>是由一系列的占位符組成,用來(lái)控制字符串中嵌入值的出現(xiàn)位置及格式,<逗號(hào)分隔的參數(shù)>按照序號(hào)順序替換到<模板字符串>的占位符處。占位符如何被替換取決于每個(gè)格式說(shuō)明符,格式說(shuō)明符以“:”作為其前綴來(lái)表示。占位符用大括號(hào){}括起來(lái),如果大括號(hào)中沒(méi)有序號(hào),則按照位置順序替換。除了通過(guò)序號(hào)來(lái)指定填充的參數(shù)外,還可以通過(guò)關(guān)鍵字參數(shù)、下標(biāo)、字典的key和對(duì)象的屬性來(lái)填充。
4.6字符串的格式化>>>print('{}:計(jì)算機(jī){}的CPU占用率為{}%.'.format('2019-01-30','Python',10))2019-01-30:計(jì)算機(jī)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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 牛油果綠畢業(yè)答辯
- 膠水銷售年終總結(jié)
- 地質(zhì)災(zāi)害檢測(cè)員培訓(xùn)
- 副干酪乳桿菌培養(yǎng)物對(duì)小鼠潰瘍性結(jié)腸炎的緩解作用及機(jī)制研究
- 代謝工程改造釀酒酵母發(fā)酵生產(chǎn)β-胡蘿卜素
- ZD公司直接物料供應(yīng)商選擇研究
- CuBi2O4中雜質(zhì)CuO對(duì)光電催化還原水的機(jī)理探究
- 傳染病的流行病學(xué)特征
- 中國(guó)填鴨式教育探討
- 2025年度美容院美容師招聘與職業(yè)培訓(xùn)合同
- TZRIA 002-2024 工業(yè)巡檢四足機(jī)器人技術(shù)條件
- 小學(xué)科學(xué)二年級(jí)下冊(cè)教案(全冊(cè))
- 2025安徽振含控股集團(tuán)有限公司招聘8人筆試參考題庫(kù)附帶答案詳解
- 2025年內(nèi)蒙古機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案一套
- 河道洪水應(yīng)急響應(yīng)預(yù)案
- 《欣賞與設(shè)計(jì)》(教案)2024-2025學(xué)年數(shù)學(xué)六年級(jí)下冊(cè) 北師大版
- 2025年中國(guó)煙氣檢測(cè)儀器行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)、進(jìn)出口貿(mào)易及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 減免保證金申請(qǐng)書
- 五年級(jí)下冊(cè)語(yǔ)文第三單元遨游漢字王國(guó)單元整體教學(xué)設(shè)計(jì)
- 銀行信貸部門廉政風(fēng)險(xiǎn)點(diǎn)及防控措施
- 高一上學(xué)期統(tǒng)編版(2019)必修中外歷史綱要上翻書大賽課件
評(píng)論
0/150
提交評(píng)論