Python程序設計基礎-Chap04-字符串課件_第1頁
Python程序設計基礎-Chap04-字符串課件_第2頁
Python程序設計基礎-Chap04-字符串課件_第3頁
Python程序設計基礎-Chap04-字符串課件_第4頁
Python程序設計基礎-Chap04-字符串課件_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章字符串第4章字符串內容提綱4.1字符串的基本操作24.2字符串格式化34.3常用字符串函數(shù)和方法1內容提綱4.1字符串的基本操作24.2字符串格式化34引例引例看看這個簡單的例子。當我們在利用QQ等通信工具向好友發(fā)送消息時,所發(fā)送的消息就是由一系列字符串組成的。我們發(fā)送的消息會通過服務器中轉,然后再發(fā)送到目的地。在這個過程中,服務器就是將消息的內容當成字符串來處理的。引例4.1.1字符串的表示我們可以使用兩個單引號(')或兩個雙引號(")括起來創(chuàng)建字符串>>>str='howareyou'>>>print(str)howareyou>>>str="howareyou">>>print(str)howareyou單引號、雙引號、三引號4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面來看一些對比的例子>>>#單引號中使用雙引號str2='"python"'>>>#雙引號中使用單引號str3="'python'">>>#三單引號str4='''python'''>>>#三單引號中間使用雙引號str5='''"python"'‘’4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面來看一些對比的例子>>>#三單引號中有換行符str6='''hellopython'''>>>#三雙引號中有換行符str7="""hellopython“”“4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面來看一些對比的例子>>>print(str2)"python">>>print(str3)'python'>>>print(str4)python>>>print(str5)"python"4.1字符串的基本操作>>>print(str6)hellopython>>>print(str7)hellopython4.1.1字符串的表示4.1字符串的基本操作>>>pr4.1.1字符串的表示(1)單引號中可以使用雙引號,中間的會當作字符串輸出。(2)雙引號中可以使用單引號,中間的會當作字符串輸出。(3)三單引號和三雙引號中間的字符串在輸出時保持原來的格式。4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.2索引序列是有順序的,可以根據(jù)字符在序列中的位置將其編號,字符在字符串中的位置稱為“索引”。在Python中,字符串中的字符是通過索引來提取的,索引從0開始。索引可以取負值,表示從末尾提取,最后一個為-1,倒數(shù)第二個為-2,即程序認為可以從結束處反向計數(shù)。在Python中,不僅可以對單個字符建立索引,而且還可以對字符串中的子串建立索引。4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引Python中用索引運算符“[]”來提取字符串中的字符。字符串索引4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引若存取范圍超過范圍的索引位置(或空字符串中的索引位置)會產(chǎn)生indexoutofrange異常。>>>s='howareyou'>>>s[11]#索引超出字符串范圍Traceback(mostrecentcalllast):File"<pyshell#41>",line1,in<module>s[11]IndexError:stringindexoutofrange4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.3分片與使用索引訪問單個元素類似,可以使用分片操作來訪問一定范圍內的元素。分片是實際應用中經(jīng)常使用的技術,被截取的部分稱為“子串”或“子序列”。索引運算符冒號(:)指出子序列的范圍。注意,此過程不會改變原來的字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片1.分片格式:S[i:j]表示選擇S字符串中從索引位置i到索引位置j-1的子序列。Python采用的是半開區(qū)間,半開區(qū)間包含范圍的起始值,而不包含結束值。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[4:]表達式指定的子序列從‘howareyou’中索引為4的位置開始,到字符串結尾處為止。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[:4]表達式指定的子序列從‘howareyou’中索引為0的位置開始,到字符串索引為4的位置為止,但不包括索引值為4的字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片負分片的例子:‘howareyou’[-1]表達式指定了原字符串最后一個字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片負分片的例子:'howareyou'[4:-2],指定的是從原字符串索引為4的位置開始,到原字符串倒數(shù)第3個位置結束的子串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片2.分片格式:S[i:j:k]表示選擇S字符串中的字符,從索引位置i直到索引位置j-1,每隔k個字符索引一次,k為步長,默認為1。若省略i,則表示從起始位置開始索引;若省略j,則表示到結束位置為止。步長值指出了從原字符串中每隔多少個字符就取出值到子串中。也可以使用負數(shù)作為步長,步長-1表示分片將會從右至左進行而不是通常的從左至右,實際效果主是將序列反轉。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片指定步長的分片4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片Python不支持字符類型;字符會被視為長度為1的字符串,因此也被認為是一個子字符串。要訪問子串,請使用方括號的切片加上索引或直接使用索引來獲取子字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.4合并Python使用“+”連接不同的字符串?!?”運算符需要兩個字符串對象,得到一個新的字符串對象。新的字符串對象由前面兩個字符串對象連接而成(將第2個字符串的開始連接到第1個字符串的末尾)。>>>str1='Hello'>>>str2='Guangzhou'>>>str1+str2'HelloGuangzhou'>>>str2+str1'GuangzhouHello'>>>str1+''+str2'HelloGuangzhou'4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并當出現(xiàn)“+”運算符時,Python是怎么知道該做連接運算還是加法運算呢?操作數(shù)的類型決定將執(zhí)行的運算類型。如果“+”兩側都是字符串類型,則進行連接操作;如果“+”兩側都是數(shù)字類型,則進行加法運算;如果“+”兩側是不同的類型,Python解釋器將提示出錯。4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并使用join()連接字符串:>>>strs=['Hello','China','Hello','Guangzhou']#多個字符串存放在列表中>>>result=''.join(strs)#調用join(),依次連接列表中的元素>>>print(result)HelloChinaHelloGuangzhou4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.5復制使用重復運算符“*”實現(xiàn)字符串的復制?!?”需要一個字符串對象和一個整數(shù),產(chǎn)生1個新的字符串對象。新的字符串對象是由原字符串復制而成,復制的次數(shù)為給出的整數(shù)值,而復制字符串時,字符串和整數(shù)的順序無關。4.1字符串的基本操作4.1.5復制4.1字符串的基本操作4.1.5復制>>>str='Guangzhou'>>>str*3#str3次復制'GuangzhouGuangzhouGuangzhou'>>>3*str#str3次復制'GuangzhouGuangzhouGuangzhou'>>>(str+'')*3'GuangzhouGuangzhouGuangzhou'>>>str*strTraceback(mostrecentcalllast):File"<pyshell#83>",line1,in<module>str*strTypeError:can'tmultiplysequencebynon-intoftype'str'4.1字符串的基本操作4.1.5復制4.1字符串的基本操作4.1.6截取方法1:“索引”“切片

”來截取字符串獲取子串。方法2:使用split()來獲取子串。split()的語法如下:split([char][,num])[n]參數(shù)char表示用于分割的字符,默認的分割字符是空格。參數(shù)num表示分割的次數(shù)。默認情況下,將根據(jù)字符char在字符串中出現(xiàn)的個數(shù)來分割子串。函數(shù)的返回值是由子串組成的列表。參數(shù)n表示取第幾個分片。split()就是將一個字符串分裂成多個字符串組成的列表。4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()獲取子串的例子>>>sentence="Janesaid:one,two,three,four" >>>print(sentence.split())#使用空格獲取子串['Jane','said:','one,','two,','three,','four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()獲取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(","))#使用逗號獲取子串['Janesaid:one','two','three','four']>>>print(sentence.split(",",2))#使用逗號獲取子串,num值為2['Janesaid:one','two','three,four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()獲取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(",")[2])#使用逗號獲取索引為2的分片three>>>print(sentence.split(",")[0])#使用逗號獲取索引為0的分片Janesaid:one>>>print(sentence.split()[0])#使用空格獲取索引為0的分片Jane4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.7比較1.使用“==”、“!=”、“<”、“>”運算符(1)單字符字符串的比較>>>'a'=='a'#兩個字符相同,返回真True>>>'a'=='A'#兩個字符不相同,返回假False>>>'a'!='A'#ord(a)=97,ord(A)=65,97!=65返回真True>>>'a'>'A'#ord(a)=97,ord(A)=65,97>65返回真True>>>'1'<"2"True4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.7比較1.使用“==”、“!=”、“<”、“>”運算符(2)多字符字符串的比較>>>'abs'<'cde'#索引位置0的’a’<’c’True>>>'abc'<'abd'#索引位置2的’c’<’d’True>>>'abc'>'abcd'#'abc'都相等,較長的字符串更大False>>>''<'a'#空字符串比其他字符串都小True4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.7比較2.使用startswith()、endswith()startswith()聲明為:startswish(substr,[start[,end]])參數(shù)substr是與源字符串開頭部分比較的子串。參數(shù)start表示開始比較的位置。參數(shù)end表示比較結束的位置。即在“start:end”范圍內搜索子串substr。如果字符串以substr開頭,則返回True,否則返回False。endswith()的參數(shù)與返回值與startswith()類似,不同的是endswith()從源字符串的尾部開始搜索。startswith()、endswith()不能用于比較源字符串中任意部分的子串。4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.7比較2.使用startswith()、endswith()>>>str="Howareyou">>>print(str.startswith("How"))#比較str的開頭部分”How”True對比>>>str="Howareyou">>>print(str.endswith("you",6))True>>>print(str.endswith("you",6,10))False>>>print(str.endswith("you",6,len(str)))True4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.8長度與最值>>>str="HelloWorld">>>len(str)#求字符串str的長度10>>>max(str)#求字符串str中最大的字符'r'>>>min(str)#求字符串str中最小的字符'H'>>>max('bcd','fig','abcd','xyz','abab')#求多個字符串中最大的字符串'xyz'>>>min('bcd','fig','abcd','xyz','abab')#求多個字符串中最小的字符串'abab'4.1字符串的基本操作4.1.8長度與最值4.1字符串的基本操作4.1.9in運算符in運算符用于檢查集合的成員,需要兩個參數(shù):測試字符串和可能包含測試字符串的字符串。形式如下:str1instr2如果測試字符串str1包含在str2中,且測試字符串序列必須完全相同則返回True,否則返回False。4.1字符串的基本操作4.1.9in運算符4.1字符串的基本操作4.1.9in運算符>>>word="China">>>'h'inwordTrue>>>'b'inwordFalse>>>'na'inwordTrue>>>'an'inword#測試字符串序列不相同F(xiàn)alse4.1字符串的基本操作4.1.9in運算符4.1字符串的基本操作4.2.1字符串的格式化輸出Python支持格式化字符串的輸出?;镜挠梅ㄊ菍⒁粋€值插入一個有字符串格式符

%s的字符串中。>>>print("Mynameis%sandweightis%dkg!"%('Zara',21))MynameisZaraandweightis21kg!4.2字符串格式化4.2.1字符串的格式化輸出4.2字符串格式化4.2.1字符串的格式化輸出格式字符串中的信息和其他任何字符串一樣進行顯示。特殊情況是,用百分號(%)開頭的特殊字符序列表明在字符串中出現(xiàn)%的位置,將會做一次替換。用命令結尾處圓括號中的數(shù)據(jù)來替換%。上面的實例中,用“%s”替代格式字符串中的字符串,用“%d”替代格式字符串中的數(shù)字(“d”為十進制整數(shù))。格式化指令與數(shù)據(jù)項,按順序由左到右進行匹配,第一條格式命令對應第一個數(shù)據(jù)項,依次類推。字符串的格式化語法如下所示:“%s”%str1“%s%s…”%(str1,str2…)4.2字符串格式化如果要格式化多個值,元組中元素的順序必須與格式化字符串中替代符的順序一致4.2.1字符串的格式化輸出4.2字符串格式化如果要格式化4.2.1字符串的格式化輸出使用%f可以格式化浮點數(shù)的精度。根據(jù)指定的精度四舍五入。>>>print("浮點型數(shù)字:%f"%1.23)#默認情況下輸出小數(shù)點后6位數(shù)字浮點型數(shù)字:1.230000>>>print("浮點型數(shù)字:%.1f"%1.23)#四舍五入后的結果為1.2浮點型數(shù)字:1.2>>>print("浮點型數(shù)字:%.3f"%1.2355)#格式化小數(shù)點后3位并四舍五入浮點型數(shù)字:1.2364.2字符串格式化4.2.1字符串的格式化輸出4.2字符串格式化4.2.1字符串的格式化輸出表4-1Python格式化字符串的替代符及其含義4.2字符串格式化符號含義%c格式化字符及其ASCII碼%s格式化字符串%d格式化整數(shù)%u格式化無符號整型%o格式化無符號八進制數(shù)%x格式化無符號十六進制數(shù)%X格式化無符號十六進制數(shù)(大寫)%f格式化浮點數(shù)字,可指定小數(shù)點后的精度%e用科學計數(shù)法格式化浮點數(shù)%E作用同%e,用科學計數(shù)法格式化浮點數(shù)%g根據(jù)值的大小決定使用%f或%e%G作用同%g,根據(jù)值的大小決定使用%f或%e%p用十六進制數(shù)格式化變量的地址4.2.1字符串的格式化輸出4.2字符串格式化符號4.2.2寬度和精度可以為每個數(shù)據(jù)項指定字段顯示的寬度(即數(shù)據(jù)占據(jù)的空格數(shù))。如果寬度值為正值,則是在指定的寬度內右對齊;若指定了負值,則數(shù)據(jù)在指定的寬度內左對齊。>>>print("%sis%dyearsold."%("Ben",30))Benis30yearsold.>>>print("%10sis%-10dyearsold."%("Ben",30))Benis30yearsold.4.2字符串格式化4.2.2寬度和精度4.2字符串格式化4.2.2寬度和精度使用“%f”來控制浮點值的小數(shù)點右側的位數(shù),即精度。>>>importmath>>>print(math.pi)#未指定精度

3.141592653589793>>>print("Piis%.2f"%(math.pi))#保留小數(shù)點后2位Piis3.14>>>print("Piis%8.2f"%(math.pi))#指定寬度和精度,保留小數(shù)點后2位Piis3.14>>>print("Piis%8.4f"%(math.pi))#指定寬度和精度,保留小數(shù)點后4位Piis3.14164.2字符串格式化4.2.2寬度和精度4.2字符串格式化4.2.3字符串轉義字符計算機中存在可見字符和不可見字符。可見字符指的是鍵盤上的字母、數(shù)字和符號。不可見字符指的是換行、回車等字符。對于不可見字符可以使用轉義字符來表示。Python中轉義字符的用法和Java相同都是使用“\”作為轉義字符。>>>print("firstline\nsecondline")firstlinesecondline>>>print("firstword\tsecondword")firstword secondword4.2字符串格式化4.2.3字符串轉義字符4.2字符串格式化4.2.3字符串轉義字符去除字符串中的轉義字符。>>>str="\thelloworld\n">>>print("直接輸出:",str)直接輸出: helloworld

>>>print("strip()后輸出:",str.strip())strip()后輸出:helloworld>>>print("lstrip()后輸出:",str.lstrip())lstrip()后輸出:helloworld>>>print("rstrip()后輸出:",str.rstrip())rstrip()后輸出: helloworld4.2字符串格式化4.2.3字符串轉義字符4.2字符串格式化1.字符串測試字符串測試用于檢測字符串是否為特定格式。如果測試的結果為真,返回True,否則返回False。>>>s="Helloworld">>>s.startswith('h')#測試字符串s是否以’h’開頭

False>>>s.endswith("d")#測試字符串s是否以’d’結尾True>>>s.isupper()#測試字符串s是否只包含大寫字母False>>>s.islower()#測試字符串s是否只包含小寫字母False>>>s.isprintable()#測試字符串s是否只包含可打印字符True4.3常用字符串函數(shù)和方法1.字符串測試4.3常用字符串函數(shù)和方法2.字符串查找>>>s="HelloChina">>>print(s.find("H"))#在字符串s中查找"H"0>>>print(s.index("H"))#在字符串s中查找"H"0>>>print(s.rfind("H"))#在字符串s中從右往左查找"H"0>>>print(s.find("an"))#在字符串s中查找"an"-14.3常用字符串函數(shù)和方法2.字符串查找4.3常用字符串函數(shù)和方法3.字符串替換>>>s='one,twoandthree'>>>s1='one,\ttwo\tand\tthree'>>>print(s)one,twoandthree>>>print(s.replace('one','1'))#將字符串s中的每個’one’替換為'1'1,twoandthree>>>print(s.replace('one',''))#將字符串s中的每個’one’替換為'',twoandthree4.3常用字符串函數(shù)和方法3.字符串替換4.3常用字符串函數(shù)和方法3.字符串替換>>>print(s1)one, two and three>>>print(s1.expandtabs(8))#將字符串s中制表符擴展為空格,寬度為8one,twoandthree>>>print(s1.expandtabs(10))#將字符串s中制表符擴展為空格,寬度為10one,twoandthree4.3常用字符串函數(shù)和方法3.字符串替換4.3常用字符串函數(shù)和方法4.字符串合并使用join()合并字符串>>>strs=['hello','China','hello','Guangzhou']>>>result="".join(strs)#合并的串用空格分隔>>>print(result)helloChinahelloGuangzhou>>>seq=['123','456','789']>>>sep='+'#合并的串用’+’分隔>>>print(sep.join(seq))123+456+7894.3常用字符串函數(shù)和方法4.字符串合并4.3常用字符串函數(shù)和方法4.字符串合并使用reduce()合并字符串>>>fromfunctoolsimportreduce>>>importoperator#導入模塊operator,利用add()方法實現(xiàn)累計連接>>>strs=['hello','China','hello','Guangzhou']>>>result=reduce(operator.add,strs,"")>>>print(result)helloChinahelloGuangzhou4.3常用字符串函數(shù)和方法4.字符串合并4.3常用字符串函數(shù)和方法5.字符串拆分>>>url=''>>>print(url.partition('.'))('www','.','’)>>>print(url.rpartition('.'))('','.','cn')>>>print(url.split('.'))['www','ptpress','com','cn']>>>sentence='MynameisBob'>>>print(sentence.split())['My','name','is','Bob']4.3常用字符串函數(shù)和方法5.字符串拆分4.3常用字符串函數(shù)和方法6.字符串與日期的轉換>>>importtime,datetime>>>print(time.strftime("%Y-%m-%d%X",time.localtime()))2017-10-2116:09:24>>>t=time.strptime("2017-09-08","%Y-%m-%d")>>>y,m,d=t[0:3]>>>print(datetime.datetime(y,m,d))2017-09-0800:00:004.3常用字符串函數(shù)和方法6.字符串與日期的轉換4.3常用字符串函數(shù)和方法7.字符串大小寫>>>s='BeginningPython:UsingPython3.4.4andPython3.5'>>>s.lower()'beginningpython:usingpython3.4.4andpython3.5'>>>s.upper()'BEGINNINGPYTHON:USINGPYTHON3.4.4ANDPYTHON3.5'>>>s.capitalize()'Beginningpython:usingpython3.4.4andpython3.5'>>>s.title()'BeginningPython:UsingPython3.4.4AndPython3.5'4.3常用字符串函數(shù)和方法7.字符串大小寫4.3常用字符串函數(shù)和方法8.字符串格式設置>>>s='Python'>>>ch='*'>>>print(s.center(10))Python>>>print(s.center(10,ch))**Python**>>>print(s.ljust(10))Python4.3常用字符串函數(shù)和方法8.字符串格式設置4.3常用字符串函數(shù)和方法8.字符串格式設置>>>print(s.ljust(10,ch))Python****>>>print(s.rjust(10,ch))****Python>>>print(s.ljust(10))Python4.3常用字符串函數(shù)和方法8.字符串格式設置4.3常用字符串函數(shù)和方法9.字符串剝除剝除函數(shù)用于刪除字符串開頭或末尾多余的字符,如表4-11所示。默認情況下,剝除空白字符;如果指定了字符串參數(shù),則剝除該字符串中的字符。>>>name="JohnSmith">>>print(name.lstrip())JohnSmith>>>print(name.rstrip())JohnSmith>>>print(name.strip())JohnSmith4.3常用字符串函數(shù)和方法>>>title="*#GoodLuck!*#*#">>>print(title.strip())*#GoodLuck!*#*#>>>print(title.strip('*#'))GoodLuck!9.字符串剝除4.3常用字符串函數(shù)和方法>>>title本章小結字符串是程序開發(fā)中的常用數(shù)據(jù)類型,字符串的處理是實際應用中經(jīng)常面對的問題。本章講解了Python中字符串的表示與操作,包括字符串的索引與分片、合并、復制、截取、比較、格式化等。重點介紹了字符串的常用函數(shù)與方法。本章小結字符串是程序開發(fā)中的常用數(shù)據(jù)類型,字符串的處理是第4章字符串第4章字符串內容提綱4.1字符串的基本操作24.2字符串格式化34.3常用字符串函數(shù)和方法1內容提綱4.1字符串的基本操作24.2字符串格式化34引例引例看看這個簡單的例子。當我們在利用QQ等通信工具向好友發(fā)送消息時,所發(fā)送的消息就是由一系列字符串組成的。我們發(fā)送的消息會通過服務器中轉,然后再發(fā)送到目的地。在這個過程中,服務器就是將消息的內容當成字符串來處理的。引例4.1.1字符串的表示我們可以使用兩個單引號(')或兩個雙引號(")括起來創(chuàng)建字符串>>>str='howareyou'>>>print(str)howareyou>>>str="howareyou">>>print(str)howareyou單引號、雙引號、三引號4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面來看一些對比的例子>>>#單引號中使用雙引號str2='"python"'>>>#雙引號中使用單引號str3="'python'">>>#三單引號str4='''python'''>>>#三單引號中間使用雙引號str5='''"python"'‘’4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面來看一些對比的例子>>>#三單引號中有換行符str6='''hellopython'''>>>#三雙引號中有換行符str7="""hellopython“”“4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.1字符串的表示下面來看一些對比的例子>>>print(str2)"python">>>print(str3)'python'>>>print(str4)python>>>print(str5)"python"4.1字符串的基本操作>>>print(str6)hellopython>>>print(str7)hellopython4.1.1字符串的表示4.1字符串的基本操作>>>pr4.1.1字符串的表示(1)單引號中可以使用雙引號,中間的會當作字符串輸出。(2)雙引號中可以使用單引號,中間的會當作字符串輸出。(3)三單引號和三雙引號中間的字符串在輸出時保持原來的格式。4.1字符串的基本操作4.1.1字符串的表示4.1字符串的基本操作4.1.2索引序列是有順序的,可以根據(jù)字符在序列中的位置將其編號,字符在字符串中的位置稱為“索引”。在Python中,字符串中的字符是通過索引來提取的,索引從0開始。索引可以取負值,表示從末尾提取,最后一個為-1,倒數(shù)第二個為-2,即程序認為可以從結束處反向計數(shù)。在Python中,不僅可以對單個字符建立索引,而且還可以對字符串中的子串建立索引。4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引Python中用索引運算符“[]”來提取字符串中的字符。字符串索引4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.2索引若存取范圍超過范圍的索引位置(或空字符串中的索引位置)會產(chǎn)生indexoutofrange異常。>>>s='howareyou'>>>s[11]#索引超出字符串范圍Traceback(mostrecentcalllast):File"<pyshell#41>",line1,in<module>s[11]IndexError:stringindexoutofrange4.1字符串的基本操作4.1.2索引4.1字符串的基本操作4.1.3分片與使用索引訪問單個元素類似,可以使用分片操作來訪問一定范圍內的元素。分片是實際應用中經(jīng)常使用的技術,被截取的部分稱為“子串”或“子序列”。索引運算符冒號(:)指出子序列的范圍。注意,此過程不會改變原來的字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片1.分片格式:S[i:j]表示選擇S字符串中從索引位置i到索引位置j-1的子序列。Python采用的是半開區(qū)間,半開區(qū)間包含范圍的起始值,而不包含結束值。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[4:]表達式指定的子序列從‘howareyou’中索引為4的位置開始,到字符串結尾處為止。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片'howareyou'[:4]表達式指定的子序列從‘howareyou’中索引為0的位置開始,到字符串索引為4的位置為止,但不包括索引值為4的字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片負分片的例子:‘howareyou’[-1]表達式指定了原字符串最后一個字符。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片負分片的例子:'howareyou'[4:-2],指定的是從原字符串索引為4的位置開始,到原字符串倒數(shù)第3個位置結束的子串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片2.分片格式:S[i:j:k]表示選擇S字符串中的字符,從索引位置i直到索引位置j-1,每隔k個字符索引一次,k為步長,默認為1。若省略i,則表示從起始位置開始索引;若省略j,則表示到結束位置為止。步長值指出了從原字符串中每隔多少個字符就取出值到子串中。也可以使用負數(shù)作為步長,步長-1表示分片將會從右至左進行而不是通常的從左至右,實際效果主是將序列反轉。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片指定步長的分片4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.3分片Python不支持字符類型;字符會被視為長度為1的字符串,因此也被認為是一個子字符串。要訪問子串,請使用方括號的切片加上索引或直接使用索引來獲取子字符串。4.1字符串的基本操作4.1.3分片4.1字符串的基本操作4.1.4合并Python使用“+”連接不同的字符串?!?”運算符需要兩個字符串對象,得到一個新的字符串對象。新的字符串對象由前面兩個字符串對象連接而成(將第2個字符串的開始連接到第1個字符串的末尾)。>>>str1='Hello'>>>str2='Guangzhou'>>>str1+str2'HelloGuangzhou'>>>str2+str1'GuangzhouHello'>>>str1+''+str2'HelloGuangzhou'4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并當出現(xiàn)“+”運算符時,Python是怎么知道該做連接運算還是加法運算呢?操作數(shù)的類型決定將執(zhí)行的運算類型。如果“+”兩側都是字符串類型,則進行連接操作;如果“+”兩側都是數(shù)字類型,則進行加法運算;如果“+”兩側是不同的類型,Python解釋器將提示出錯。4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.4合并使用join()連接字符串:>>>strs=['Hello','China','Hello','Guangzhou']#多個字符串存放在列表中>>>result=''.join(strs)#調用join(),依次連接列表中的元素>>>print(result)HelloChinaHelloGuangzhou4.1字符串的基本操作4.1.4合并4.1字符串的基本操作4.1.5復制使用重復運算符“*”實現(xiàn)字符串的復制?!?”需要一個字符串對象和一個整數(shù),產(chǎn)生1個新的字符串對象。新的字符串對象是由原字符串復制而成,復制的次數(shù)為給出的整數(shù)值,而復制字符串時,字符串和整數(shù)的順序無關。4.1字符串的基本操作4.1.5復制4.1字符串的基本操作4.1.5復制>>>str='Guangzhou'>>>str*3#str3次復制'GuangzhouGuangzhouGuangzhou'>>>3*str#str3次復制'GuangzhouGuangzhouGuangzhou'>>>(str+'')*3'GuangzhouGuangzhouGuangzhou'>>>str*strTraceback(mostrecentcalllast):File"<pyshell#83>",line1,in<module>str*strTypeError:can'tmultiplysequencebynon-intoftype'str'4.1字符串的基本操作4.1.5復制4.1字符串的基本操作4.1.6截取方法1:“索引”“切片

”來截取字符串獲取子串。方法2:使用split()來獲取子串。split()的語法如下:split([char][,num])[n]參數(shù)char表示用于分割的字符,默認的分割字符是空格。參數(shù)num表示分割的次數(shù)。默認情況下,將根據(jù)字符char在字符串中出現(xiàn)的個數(shù)來分割子串。函數(shù)的返回值是由子串組成的列表。參數(shù)n表示取第幾個分片。split()就是將一個字符串分裂成多個字符串組成的列表。4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()獲取子串的例子>>>sentence="Janesaid:one,two,three,four" >>>print(sentence.split())#使用空格獲取子串['Jane','said:','one,','two,','three,','four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()獲取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(","))#使用逗號獲取子串['Janesaid:one','two','three','four']>>>print(sentence.split(",",2))#使用逗號獲取子串,num值為2['Janesaid:one','two','three,four']4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.6截取使用split()獲取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(",")[2])#使用逗號獲取索引為2的分片three>>>print(sentence.split(",")[0])#使用逗號獲取索引為0的分片Janesaid:one>>>print(sentence.split()[0])#使用空格獲取索引為0的分片Jane4.1字符串的基本操作4.1.6截取4.1字符串的基本操作4.1.7比較1.使用“==”、“!=”、“<”、“>”運算符(1)單字符字符串的比較>>>'a'=='a'#兩個字符相同,返回真True>>>'a'=='A'#兩個字符不相同,返回假False>>>'a'!='A'#ord(a)=97,ord(A)=65,97!=65返回真True>>>'a'>'A'#ord(a)=97,ord(A)=65,97>65返回真True>>>'1'<"2"True4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.7比較1.使用“==”、“!=”、“<”、“>”運算符(2)多字符字符串的比較>>>'abs'<'cde'#索引位置0的’a’<’c’True>>>'abc'<'abd'#索引位置2的’c’<’d’True>>>'abc'>'abcd'#'abc'都相等,較長的字符串更大False>>>''<'a'#空字符串比其他字符串都小True4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.7比較2.使用startswith()、endswith()startswith()聲明為:startswish(substr,[start[,end]])參數(shù)substr是與源字符串開頭部分比較的子串。參數(shù)start表示開始比較的位置。參數(shù)end表示比較結束的位置。即在“start:end”范圍內搜索子串substr。如果字符串以substr開頭,則返回True,否則返回False。endswith()的參數(shù)與返回值與startswith()類似,不同的是endswith()從源字符串的尾部開始搜索。startswith()、endswith()不能用于比較源字符串中任意部分的子串。4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.7比較2.使用startswith()、endswith()>>>str="Howareyou">>>print(str.startswith("How"))#比較str的開頭部分”How”True對比>>>str="Howareyou">>>print(str.endswith("you",6))True>>>print(str.endswith("you",6,10))False>>>print(str.endswith("you",6,len(str)))True4.1字符串的基本操作4.1.7比較4.1字符串的基本操作4.1.8長度與最值>>>str="HelloWorld">>>len(str)#求字符串str的長度10>>>max(str)#求字符串str中最大的字符'r'>>>min(str)#求字符串str中最小的字符'H'>>>max('bcd','fig','abcd','xyz','abab')#求多個字符串中最大的字符串'xyz'>>>min('bcd','fig','abcd','xyz','abab')#求多個字符串中最小的字符串'abab'4.1字符串的基本操作4.1.8長度與最值4.1字符串的基本操作4.1.9in運算符in運算符用于檢查集合的成員,需要兩個參數(shù):測試字符串和可能包含測試字符串的字符串。形式如下:str1instr2如果測試字符串str1包含在str2中,且測試字符串序列必須完全相同則返回True,否則返回False。4.1字符串的基本操作4.1.9in運算符4.1字符串的基本操作4.1.9in運算符>>>word="China">>>'h'inwordTrue>>>'b'inwordFalse>>>'na'inwordTrue>>>'an'inword#測試字符串序列不相同F(xiàn)alse4.1字符串的基本操作4.1.9in運算符4.1字符串的基本操作4.2.1字符串的格式化輸出Python支持格式化字符串的輸出?;镜挠梅ㄊ菍⒁粋€值插入一個有字符串格式符

%s的字符串中。>>>print("Mynameis%sandweightis%dkg!"%('Zara',21))MynameisZaraandweightis21kg!4.2字符串格式化4.2.1字符串的格式化輸出4.2字符串格式化4.2.1字符串的格式化輸出格式字符串中的信息和其他任何字符串一樣進行顯示。特殊情況是,用百分號(%)開頭的特殊字符序列表明在字符串中出現(xiàn)%的位置,將會做一次替換。用命令結尾處圓括號中的數(shù)據(jù)來替換%。上面的實例中,用“%s”替代格式字符串中的字符串,用“%d”替代格式字符串中的數(shù)字(“d”為十進制整數(shù))。格式化指令與數(shù)據(jù)項,按順序由左到右進行匹配,第一條格式命令對應第一個數(shù)據(jù)項,依次類推。字符串的格式化語法如下所示:“%s”%str1“%s%s…”%(str1,str2…)4.2字符串格式化如果要格式化多個值,元組中元素的順序必須與格式化字符串中替代符的順序一致4.2.1字符串的格式化輸出4.2字符串格式化如果要格式化4.2.1字符串的格式化輸出使用%f可以格式化浮點數(shù)的精度。根據(jù)指定的精度四舍五入。>>>print("浮點型數(shù)字:%f"%1.23)#默認情況下輸出小數(shù)點后6位數(shù)字浮點型數(shù)字:1.230000>>>print("浮點型數(shù)字:%.1f"%1.23)#四舍五入后的結果為1.2浮點型數(shù)字:1.2>>>print("浮點型數(shù)字:%.3f"%1.2355)#格式化小數(shù)點后3位并四舍五入浮點型數(shù)字:1.2364.2字符串格式化4.2.1字符串的格式化輸出4.2字符串格式化4.2.1字符串的格式化輸出表4-1Python格式化字符串的替代符及其含義4.2字符串格式化符號含義%c格式化字符及其ASCII碼%s格式化字符串%d格式化整數(shù)%u格式化無符號整型%o格式化無符號八進制數(shù)%x格式化無符號十六進制數(shù)%X格式化無符號十六進制數(shù)(大寫)%f格式化浮點數(shù)字,可指定小數(shù)點后的精度%e用科學計數(shù)法格式化浮點數(shù)%E作用同%e,用科學計數(shù)法格式化浮點數(shù)%g根據(jù)值的大小決定使用%f或%e%G作用同%g,根據(jù)值的大小決定使用%f或%e%p用十六進制數(shù)格式化變量的地址4.2.1字符串的格式化輸出4.2字符串格式化符號4.2.2寬度和精度可以為每個數(shù)據(jù)項指定字段顯示的寬度(即數(shù)據(jù)占據(jù)的空格數(shù))。如果寬度值為正值,則是在指定的寬度內右對齊;若指定了負值,則數(shù)據(jù)在指定的寬度內左對齊。>>>print("%sis%dyearsold."%("Ben",30))Benis30yearsold.>>>print("%10sis%-10dyearsold."%("Ben",30))Benis30yearsold.4.2字符串格式化4.2.2寬度和精度4.2字符串格式化4.2.2寬度和精度使用“%f”來控制浮點值的小數(shù)點右側的位數(shù),即精度。>>>importmath>>>print(math.pi)#未指定精度

3.141592653589793>>>print("Piis%.2f"%(math.pi))#保留小數(shù)點后2位Piis3.14>>>print("Piis%8.2f"%(math.pi))#指定寬度和精度,保留小數(shù)點后2位Piis3.14>>>print("Piis%8.4f"%(math.pi))#指定寬度和精度,保留小數(shù)點后4位Piis3.14164.2字符串格式化4.2.2寬度和精度4.2字符串格式化4.2.3字符串轉義字符計算機中存在可見字符和不可見字符??梢娮址傅氖擎I盤上的字母、數(shù)字和符號。不可見字符指的是換行、回車等字符。對于不可見字符可以使用轉義字符來表示。Python中轉義字符的用法和Java相同都是使用“\”作為轉義字符。>>>print("firstline\nsecondline")firstlinesecondline>>>print("firstword\tsecondword")firstword secondword4.2字符串格式化4.2.3字符串轉義字符4.2字符串格式化4.2.3字符串轉義字符去除字符串中的轉義字符。>>>str="\thelloworld\n">>>print("直接輸出:",str)直接輸出: helloworld

>>>print("strip()后輸出:",str.strip())strip()后輸出:helloworld>>>print("lstrip()后輸出:",str.lstrip())lstrip()后輸出:helloworld>>>print("rstrip()后輸出:",str.rstrip())rstrip()后輸出: helloworld4.2字符串格式化4.2.3字符串轉義字符4.2字符串格式化1.字符串測試字符串測試用于檢測字符串是否為特定格式。如果測試的結果為真,返回True,否則返回False。>>>s="Helloworld">>>s.startswith('h')#測試字符串s是否以’h’開頭

False>>>s.endswith("d")#測試字符串s是否以’d’結尾True>>>s.isupper()#測試字符串s是否只包含大寫字母False>>>s.islower()#測試字符串s是否只包含小寫字母False>>>s.isprintable()#測試字符串s是否只包含可打印字符True4.3常用字符串函數(shù)和方法1.字符串測試4.3常用字符串函數(shù)和方法2.字符串查找>>>s="HelloChina">>>print(s.find("H"))#在字符串s中查找"H"0>>>print(s.index("H"))#在字符串s中查找"H"0>>>print(s.rfind("H"))#在字符串s中從右往左查找"H"0>>>print(s.find("an"))#在字符串s中查找"an"-14.3常用字符串函數(shù)和方法2.字符串查找4.3常用字符串函數(shù)和方法3.字符串替換>>>s='one,twoandthree'>>>s1='one,\ttwo\tand\tthree'>>>print(s)one,twoandthree>>>print(s.replace('one','1'))#將字符串s中的每個’one’替換為'1'1,twoandthree>>>print(s.replace('one',''))#將字符串s中的每個’one’替換為'',twoandthree4.3常用字符串函數(shù)和方法3.字符串替換4.3常用字符串函數(shù)和方法3.字符串替換>>>pr

溫馨提示

  • 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

提交評論