《Python編程基礎(chǔ)》課件-第3章 基本數(shù)據(jù)類型_第1頁
《Python編程基礎(chǔ)》課件-第3章 基本數(shù)據(jù)類型_第2頁
《Python編程基礎(chǔ)》課件-第3章 基本數(shù)據(jù)類型_第3頁
《Python編程基礎(chǔ)》課件-第3章 基本數(shù)據(jù)類型_第4頁
《Python編程基礎(chǔ)》課件-第3章 基本數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Python3基礎(chǔ)教程第2版慕課版第3章基本數(shù)據(jù)類型本章主要內(nèi)容:數(shù)字類型數(shù)字運算字符串類型數(shù)據(jù)類型操作3.1數(shù)字類型本節(jié)主要內(nèi)容:整數(shù)類型浮點數(shù)類型復(fù)數(shù)類型小數(shù)分?jǐn)?shù)3.1.1整數(shù)類型整數(shù)類型可細(xì)分為整型(int)和布爾型(bool)。整數(shù)常量是不帶小數(shù)點的數(shù)。例如,123、-12、0、9999999999999999等。Python3不再區(qū)別整數(shù)和長整數(shù),只要計算機內(nèi)存空間足夠,整數(shù)理論上可以是無窮大。例如,下面在交互模式下分別輸出2和9的100次方。>>>2**1001267650600228229401496703205376>>>9**100265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044001一般的整數(shù)常量都是十進(jìn)制的。Python還允許將整數(shù)常量表示為二進(jìn)制、八進(jìn)制和十六進(jìn)制。二進(jìn)制:以“0b”或“0B”開頭,后面跟二進(jìn)制數(shù)字(0或1)。例如,0b101、0B11。八進(jìn)制:以“0o”或“0O”開頭,后面跟八進(jìn)制數(shù)字(0~7)。例如,0o15、0O123。十六進(jìn)制:以“0x”或“0X”開頭,后面跟十六進(jìn)制數(shù)字(0~9、A~F(或a~f))。例如,0x12AB、0x12ab。不同進(jìn)制只是整數(shù)的不同書寫形式,程序運行時會將整數(shù)處理為十進(jìn)制數(shù)。布爾型常量也稱邏輯常量,只有True和False兩個值。將布爾型常量轉(zhuǎn)換為整數(shù)時,True轉(zhuǎn)換為1,F(xiàn)alse轉(zhuǎn)換為0。將布爾常量轉(zhuǎn)換為字符串時,True轉(zhuǎn)換為“True”,F(xiàn)alse轉(zhuǎn)換為“False”。在Python中,因為布爾型是整數(shù)的子類型,所以邏輯運算和比較運算均可歸入數(shù)字運算。3.1.2浮點數(shù)類型浮點數(shù)類型的名稱為float。12.5、2.、.5、3.0、1.23e+10、1.23E-10等都是合法的浮點數(shù)常量。與整數(shù)不同,浮點數(shù)存在取值范圍,超過取值范圍會產(chǎn)生溢出錯誤(OverflowError)。浮點數(shù)取值范圍為-10308~10308。3.1.3復(fù)數(shù)類型復(fù)數(shù)類型的名稱為complex。復(fù)數(shù)常量表示為“實部+虛部”形式,虛部以j或J結(jié)尾。例如,2+3j、2-3J、2j??捎胏omplex()函數(shù)來創(chuàng)建復(fù)數(shù),其基本格式如下。

complex(實部,虛部)示例代碼如下。>>>complex(2,3)(2+3j)3.1.4小數(shù)因為計算機硬件特點,浮點數(shù)不能執(zhí)行精確運算示例代碼如下。>>>0.3+0.3+0.3+0.1 #計算結(jié)果并不是1.00.9999999999999999>>>0.3-0.1-0.1-0.1 #計算結(jié)果并不是0-2.7755575615628914e-17Python2.4開始引入了一種新的數(shù)字類型:小數(shù)對象。小數(shù)可以看作是固定精度的浮點數(shù),它有固定的位數(shù)和小數(shù)點,可以滿足要求精度的計算。1.創(chuàng)建和使用小數(shù)對象小數(shù)對象使用decimal模塊中的Decimal()函數(shù)創(chuàng)建示例代碼如下。>>>fromdecimalimportDecimal #從模塊導(dǎo)入函數(shù)>>>Decimal('0.3')+Decimal('0.3')+Decimal('0.3')+Decimal('0.1')Decimal('1.0')>>>Decimal('0.3')-Decimal('0.1')-Decimal('0.1')-Decimal('0.1')Decimal('0.0')>>>type(Decimal('1.0'))<class'decimal.Decimal'>2.小數(shù)的全局精度全局精度指作用于當(dāng)前程序的小數(shù)的有效位數(shù)設(shè)置,默認(rèn)全局精度為28位有效數(shù)字。可使用decimal模塊中的上下文對象來設(shè)置小數(shù)的全局精度。首先,調(diào)用decimal模塊的getcontext()函數(shù)獲得當(dāng)前的上下文對象再通過上下文對象的prec屬性設(shè)置全局精度示例代碼如下>>>fromdecimalimport* #導(dǎo)入模塊>>>Decimal('1')/Decimal('3') #用默認(rèn)精度計算小數(shù)Decimal('0.3333333333333333333333333333')>>>context=getcontext() #獲得上下文對象>>>context.prec=5 #設(shè)置全局小數(shù)精度為5位有效數(shù)字>>>Decimal('1')/Decimal('3')Decimal('0.33333')>>>Decimal('10')/Decimal('3')Decimal('3.3333')3.小數(shù)的臨時精度臨時精度在with模塊中使用。首先,調(diào)用decimal模塊的localcontext()函數(shù)返回本地上下文對象再通過本地上下文對象的prec屬性設(shè)置臨時精度示例代碼如下。>>>withlocalcontext()aslocal:...local.prec=3...Decimal('1')/Decimal('3')...Decimal('10')/Decimal('3')...Decimal('0.333')Decimal('3.33')3.1.5分?jǐn)?shù)分?jǐn)?shù)是Python2.6和3.0版本引入的新類型。分?jǐn)?shù)對象明確地?fù)碛幸粋€分子和分母,分子和分母保持最簡。使用分?jǐn)?shù)可以避免浮點數(shù)的不精確性。分?jǐn)?shù)使用fractions模塊中的Fraction()函數(shù)來創(chuàng)建,其基本語法格式如下。x=Fraction(a,b)

其中,a為分子,b為分母,python自動計算為最簡分?jǐn)?shù)示例代碼>>>fromfractionsimportFraction #從模塊導(dǎo)入函數(shù)>>>x=Fraction(2,8) #創(chuàng)建分?jǐn)?shù)>>>xFraction(1,4)>>>x+2 #計算1/4+2Fraction(9,4)>>>x-2 #計算1/4-2Fraction(-7,4)>>>x*2 #計算1/4*2Fraction(1,2)>>>x/2 #計算1/4除以2Fraction(1,8)分?jǐn)?shù)的打印格式和其在交互模式下直接顯示的樣式有所不同,示例代碼如下。>>>x=Fraction(2,8)>>>x #交互模式直接顯示分?jǐn)?shù)Fraction(1,4)>>>print(x) #打印分?jǐn)?shù)1/4可以使用Fraction.from_float()函數(shù)將浮點數(shù)轉(zhuǎn)換為分?jǐn)?shù),示例代碼如下。>>>Fraction.from_float(1.25)Fraction(5,4)3.2數(shù)字運算本節(jié)主要內(nèi)容:數(shù)字運算操作符數(shù)字處理函數(shù)3.2.1數(shù)字運算操作符操作符說明舉例**冪運算2**3~按位取反~5-負(fù)號-5*、%、/、//乘法、求余數(shù)、真除法、floor除法2*3、3%2、5/2、5//2+、-加法、減法2+3、2-3<<、>>向左移位、向右移位3<<2、12>>2&按位與5&2^按位異或5^2|按位或5|2<、<=、>、>=、==、!=小于、小于等于、大于、大于等于、相等、不等2<3、2<=3、2>3、2>=3、2==3、2!=3not邏輯非notTrue、not2<3and邏輯與x>5andx<100or邏輯或x<5orx>1001.計算的優(yōu)先級表3-1中操作符的運算優(yōu)先級按從上到下的順序依次降低??梢杂美ㄌ枺ɡㄌ杻?yōu)先級最高)改變計算順序示例代碼如下。>>>2+3*5 17>>>(2+3)*5252.計算中的自動數(shù)據(jù)類型轉(zhuǎn)換在運算過程中遇到不同類型的數(shù)字參數(shù)時,Python總是將簡單的類型轉(zhuǎn)換為復(fù)雜的類型,示例代碼如下。>>>2+3.5,type(2+3.5)(5.5,<class'float'>)>>>2+3.5+(2+3j),type(2+3.5+(2+3j))((7.5+3j),<class'complex'>)Python中的類型復(fù)雜度為:布爾型比整型簡單、整型比浮點數(shù)簡單、浮點數(shù)比復(fù)數(shù)簡單。3.求余數(shù)“x%y”計算x除以y的余數(shù),余數(shù)符號與y一致。若存在一個操作數(shù)為浮點數(shù),則結(jié)果為浮點數(shù),否則為整數(shù)示例代碼如下。>>>5%2,5%-2,-5%2,-5%-2(1,-1,1,-1)>>>5%2.0,5%-2.0,-5%2.0,-5%-2.0(1.0,-1.0,1.0,-1.0)4.真除法和floor除法“/”運算稱為真除法,這是為了與傳統(tǒng)除法進(jìn)行區(qū)別。在Python3.0之前的版本中,“/”運算在兩個操作數(shù)都是整數(shù)時,計算結(jié)果只保留整數(shù)部分(稱為截斷除法);如果有一個操作數(shù)是浮點數(shù),則計算結(jié)果為浮點數(shù),保留小數(shù)部分。在Python3中,“/”運算執(zhí)行真除法,即無論操作數(shù)是否為整數(shù),計算結(jié)果都是浮點數(shù),保留小數(shù)部分。>>>4/2,5/2(2.0,2.5)floor除法“//”運算稱為floor除法。“x//y”計算結(jié)果為不大于x除以y的最大整數(shù)。當(dāng)兩個操作數(shù)都是整數(shù)時,結(jié)果為int類型,否則為float類型示例代碼如下。>>>5//2,5//-2,-5//2,-5//-2 #操作數(shù)都是int類型,結(jié)果為int類型(2,-3,-3,2)>>>5//2.0,5//-2.0,-5//2.0,-5//-2.0#操作數(shù)中一個是float類型,結(jié)果為float類型(2.0,-3.0,-3.0,2.0)5.位運算位運算:~、&、^、|、<<、>>,按操作數(shù)的二進(jìn)制位進(jìn)行操作。(1)按位取反“~”操作數(shù)的二進(jìn)制位中,1取反為0,0取反為1,符號位也取反。>>>~5 #5的8位二進(jìn)制形式為00000101,按位取反為11111010,即-6-6>>>~-5 #-5的8位二進(jìn)制形式為11111011,按位取反為00000100,即44在計算機內(nèi)部,數(shù)的位數(shù)與計算機字長一致。這里為了方便,用8位進(jìn)行說明。計算機內(nèi)部,數(shù)都使用補碼進(jìn)行表示。正數(shù)的補碼與原碼一致。例如,6的原碼和補碼均為00000110,-6的原碼為10000110,補碼為11111010。(2)按位與“&”將兩個操作數(shù)按其相同位置的數(shù)執(zhí)行“與”操作,兩個位上都是1時,與的結(jié)果為1,否則為0,示例代碼如下。>>>4&5 #4的二進(jìn)制形式為00000100,5為00000101,所以結(jié)果為000001004>>>-4&5 #-4的二進(jìn)制形式為11111100,5為00000101,所以結(jié)果為000001004(3)按位異或“^”按位異或在相同位上的數(shù)相同時結(jié)果為0,否則為1示例代碼如下。>>>4^51>>>-4^5-7(4)按位或“|”按位或在相同位上的數(shù)有一個為1時結(jié)果為1,否則為0示例代碼如下。>>>4|55>>>-4|5-3(5)向左移位“<<”“x<<y”表示將x按二進(jìn)制形式向左移動y位,末尾補0,符號位保持不變向左移動1位等同于乘以2示例代碼如下。>>>1<<24>>>-1<<2-4(6)向右移位“>>”“x>>y”表示將x按二進(jìn)制形式向右移動y位,符號位保持不變向右移動1位等同于除以2示例代碼如下。>>>8>>22>>>-8>>2-26.比較運算比較運算的值為邏輯值(True或False)示例代碼如下。>>>2>3False>>>2<3.0TruePython允許將連續(xù)的多個比較運算符進(jìn)行縮寫示例代碼如下。>>>a=1>>>b=3>>>c=5>>>a<b<c #等價于a<bandb<cTrue>>>a==b<c #等價于a==bandb<cFalse>>>a<b>c #等價于a<bandb>cFalse7.邏輯運算邏輯運算(也稱布爾運算)指邏輯值(True或False)執(zhí)行not、and或or操作。在判斷True或False之外的數(shù)據(jù)是否為邏輯值時,Python將屬于下列情況的值都視為False。None。各種數(shù)字類型的0,如0、0.0、(0+0j)等。空的序列,如''、()、[]等??盏挠成洌鐊}。如果自定義類包含__bool__()方法或__len__()方法,當(dāng)類的實例對象的__bool__()方法返回False或__len__()方法返回0時,實例對象視為False。上述情況之外的值則視為True。(1)邏輯非notnotTrue為False,notFalse為True示例代碼如下。>>>notTrue,notFalse(False,True)>>>notNone,not0,not'',not{}(True,True,True,True)(2)邏輯與and“xandy”在兩個操作數(shù)都為True時,結(jié)果才為True,否則為False。當(dāng)x為False時,“xandy”運算結(jié)果為False,Python不會再計算y示例代碼如下。>>>TrueandTrue,TrueandFalse,FalseandTrue,FalseandFalse(True,False,False,False)(3)邏輯或or“xory”在兩個操作數(shù)都為False時,結(jié)果才為False,否則為True當(dāng)x為True時,“xory”運算結(jié)果為True,Python不會再計算y示例代碼如下。>>>TrueorTrue,TrueorFalse,FalseorTrue,FalseorFalse(True,True,True,False)3.2.2數(shù)字處理函數(shù)1.內(nèi)置的常用數(shù)學(xué)函數(shù)下面通過交互模式的實際例子說明部分常用的內(nèi)置數(shù)學(xué)函數(shù)。2.math模塊Python在math模塊中提供了常用的數(shù)學(xué)常量和函數(shù),要使用這些函數(shù)需要先導(dǎo)入math模塊示例。3.3字符串類型本節(jié)主要內(nèi)容:字符串常量字符串操作符字符串的索引字符串的切片迭代字符串字符串處理函數(shù)字符串處理方法字符串的格式化bytes字符串3.3.1字符串常量Python字符串常量可用下列多種方法表示。單引號:'a'、'123'、'abc'。雙引號:"a"、"123"、"abc"。三個單引號或雙引號:'''Pythoncode'''、"""Pythonstring""",三引號字符串可以包含多行字符。帶“r”或“R”前綴的Raw字符串:r'abc\n123'、R'abc\n123'。帶“u”或“U”前綴的Unicode字符串:u'asdf'、U'asdf',字符串默認(rèn)為Unicode字符串,“u”或“U”前綴可以省略。字符串都是str類型的對象,可用內(nèi)置的str函數(shù)來創(chuàng)建字符串對象,示例代碼如下。>>>x=str(123) #用數(shù)字創(chuàng)建字符串對象>>>x'123'>>>type(x) #測試字符串對象類型<class'str'>>>>x=str('abc12') #用字符串常量創(chuàng)建字符串對象>>>x'abc121.單引號與雙引號在表示字符串常量時,單引號和雙引號沒有區(qū)別。在單引號字符串中可嵌入雙引號,在雙引號字符串中可嵌入單引號,示例代碼如下。>>>'123"abc''123"abc'>>>"123'abc""123'abc">>>print('123"abc',"123'abc")123"abc123'abc在交互模式下,直接顯示字符串時,默認(rèn)用單引號表示。如果字符串中有單引號,則用雙引號表示。注意,字符串打印時,不會顯示表示字符串的單引號或雙引號。2.三引號三引號通常用于表示多行字符串(也稱塊字符),示例代碼如下。>>>x="""Thisis aPython multilinestring.""">>>x'Thisis\n\taPython\n\tmultilinestring.'>>>print(x)Thisis aPython multilinestring.注意交互模式下,直接顯示時,字符串中的各種控制字符以轉(zhuǎn)義字符的形式顯示,與打印格式有所區(qū)別。三引號的另一種作用是為文檔添加注釋,將被三引號包含的代碼塊作為注釋,在執(zhí)行時被忽略,示例代碼如下。"""這是三引號字符串注釋ifx>0:print(x,'是正數(shù)')else:print(x,'不是正數(shù)')注釋結(jié)束"""x='123'print(type(x))文檔注釋程序文件開頭的三引號注釋,可稱為文檔注釋文檔注釋一般用于說明程序的作用文檔注釋可用模塊的__doc__屬性來訪問>>>importtest1<class'str'>>>>test1.__doc__"這是三引號字符串注釋\nifx>0:\nprint(x,'是正數(shù)')\nelse:\nprint(x,'不是正數(shù)')\n注釋結(jié)束"3.轉(zhuǎn)義字符轉(zhuǎn)義字符用于表示不能直接表示的特殊字符。Python常用轉(zhuǎn)義字符如表所示轉(zhuǎn)義字符說明\\反斜線\'單引號\"雙引號\a響鈴符\b退格符\f換頁符\n換行符\r回車符\t水平制表符\v垂直制表符\0Null,空字符\ooo3位八進(jìn)制數(shù)表示的Unicode碼對應(yīng)字符\xhh2位十進(jìn)制數(shù)表示的Unicode碼對應(yīng)字符在C語言中,字符串以空字符作為字符串結(jié)束符號,Python把空字符串作為一個字符處理示例代碼如下。>>>x='\0\101\102'>>>x'\x00AB'>>>print(x) #打印字符串AB>>>len(x) #求字符串長度34.Raw字符串Python不會解析Raw字符串中的轉(zhuǎn)義字符。Raw字符串的典型應(yīng)用是表示W(wǎng)indows系統(tǒng)中的文件路徑。mf=open('D:\temp\newpy.py','r')open語句試圖打開“D:\temp”目錄中的newpy.py文件,Python會將文件名字符串中的“\t”和“\n”處理為轉(zhuǎn)義字符,從而導(dǎo)致錯誤??蓪⑽募址械姆葱本€表示為轉(zhuǎn)移符。 mf=open('D:\\temp\\newpy.py','r')更簡單的辦法是用Raw字符串來表示文件名字符串。 mf=open(r'D:\temp\newpy.py','r')另一種替代辦法是用正斜線表示文件名中的路徑分隔符。

mf=open('D:/temp/newpy.py','r')3.3.2字符串操作符1.in字符串是字符的有序集合,可用in操作符判斷字符串包含關(guān)系>>>x='abcdef'>>>'a'inxTrue>>>'cde'inxTrue>>>'12'inxFalse2.空格以空格分隔(或者沒有分隔符號)的多個字符串可自動合并,示例代碼如下。>>>'12''34''56' '123456'3.加號加法運算將多個字符串合并,示例代碼如下。>>>'12'+'34'+'56' '123456'4.星號星號用于將字符串復(fù)制多次以構(gòu)成新的字符串。>>>'12'*3'121212'5.逗號在使用逗號分隔字符時,會創(chuàng)建用字符串組成的元組>>>x='abc','def'>>>x('abc','def')>>>type(x)<class'tuple'>3.3.3字符串的索引字符串是一個有序的集合,其中的每個字符可通過偏移量進(jìn)行索引或分片。字符串中的字符按從左到右的順序,其偏移量依次為:0、1、2……len-1(最后一個字符偏移量為字符串長度減1);按從右到左的順序,偏移量取負(fù)值,依次為:-len……-2、-1。索引指通過偏移量來定位字符串中的單個字符,示例代碼如下。>>>x='abcdef'>>>x[0] #索引第1個字符'a'>>>x[-1] #索引最后1個字符'f'>>>x[3] #索引第4個字符'd'索引可獲得指定位置的單個字符,但不能通過索引來修改字符串。因為字符串對象不允許被修改,示例代碼如下。>>>x='abcd'>>>x[0]=‘1’#試圖修改字符串中的指定字符,出錯Traceback(mostrecentcalllast):File"<pyshell#54>",line1,in<module>x[0]='1'TypeError:'str'objectdoesnotsupportitemassignment3.3.4字符串的切片字符串的切片也稱分片,它利用索引范圍從字符串中獲得連續(xù)的多個字符(即子字符串)。字符串切片的基本格式如下。x[start:end]返回字符串x中從偏移量start開始、到偏移量end之前的子字符串。start和end參數(shù)均可省略,start默認(rèn)為0,end默認(rèn)為字符串長度>>>x='abcdef'>>>x[1:4] #返回偏移量為1到3的字符'bcd'>>>x[1:] #返回偏移量為1到末尾的字符'bcdef'>>>x[:4] #返回從字符串開頭到偏移量為3的字符'abcd'>>>x[:-1] #除最后一個字符,其他字符全部返回'abcde'>>>x[:] #返回全部字符'abcdef'默認(rèn)情況下,切片是返回字符串中的多個連續(xù)字符,可以通過步長參數(shù)來跳過中間的字符,其基本格式如下。

x[start:end:step]用這種格式切片時,會依次跳過中間step-1個字符,step默認(rèn)為1>>>x='0123456789'>>>x[1:7:2] #返回偏移量為1、3、5的字符'135'>>>x[::2] #返回偏移量為偶數(shù)的全部字符'02468'>>>x[7:1:-2] #返回偏移量為7、5、3的字符'753'>>>x[::-1] #將字符串反序返回'9876543210'3.3.5迭代字符串字符串是有序的字符集合,可用for循環(huán)迭代處理字符串,示例代碼如下。>>>forain'abc': #變量a依次表示字符串中的每個字符...print(a)...abc3.3.6字符串處理函數(shù)1.求字符串長度字符串長度指字符串中包含的字符個數(shù)可用len()函數(shù)獲得字符串長度,示例代碼如下。>>>len('abcdef')62.字符串轉(zhuǎn)換可用str()函數(shù)將非字符串?dāng)?shù)據(jù)轉(zhuǎn)換為字符串,示例代碼如下。>>>str(123) #將整數(shù)轉(zhuǎn)換為字符串'123'>>>str(1.23) #將浮點數(shù)轉(zhuǎn)換為字符串'1.23'>>>str(2+4j) #將復(fù)數(shù)轉(zhuǎn)換為字符串'(2+4j)'>>>str([1,2,3]) #將列表轉(zhuǎn)換為字符串'[1,2,3]'>>>str(True) #將布爾常量轉(zhuǎn)換為字符串'True'在轉(zhuǎn)換數(shù)字時,repr()和str()的效果相同。在處理字符串時,repr()會將一對表示字符串常量的單引號添加到轉(zhuǎn)換之后的字符串中>>>str(123),repr(123)('123','123')>>>str('123'),repr('123')('123',"'123'")>>>str("123"),repr("123")('123',"'123'")3.求字符Unicode碼ord()函數(shù)返回字符的Unicode碼。>>>ord('A')65>>>ord('中')200134.將Unicode碼轉(zhuǎn)換為字符chr()函數(shù)返回Unicode碼對應(yīng)的字符。>>>chr(65)'A'>>>chr(20013)'中'3.3.7字符串處理方法字符串是str類型的對象字符串處理方法調(diào)用格式:

字符串.方法()1.capitalize()將字符串第一個字母大寫,其余字母小寫,返回新的字符串。>>>'thisisPython'.capitalize()'Thisispython'2.count(sub[,start[,end]])返回字符串sub在當(dāng)前字符串的[start,end]范圍內(nèi)出現(xiàn)的次數(shù),省略范圍時會查找整個字符串。>>>'abcabcabc'.count('ab') #在字符中統(tǒng)計ab出現(xiàn)的次數(shù)3>>>'abcabcabc'.count('ab',2) #從第3個字符開始統(tǒng)計23.endswith(sub[,start[,end]])判斷當(dāng)前字符串的[start,end]范圍內(nèi)的子字符串是否以sub字符串結(jié)尾示例代碼如下。>>>'abcabcabc'.endswith('bc')True>>>'abcabcabc'.endswith('b')False4.startswith(sub[,start[,end]])判斷當(dāng)前字符串的[start,end]范圍內(nèi)的子字符串是否以sub字符串開頭示例代碼如下。>>>'abcd'.startswith('ab')True>>>'abcd'.startswith('ac')False5.expandtabs(tabsize=8)將字符串中的Tab字符替換為空格,參數(shù)默認(rèn)為8,即將一個Tab字符替換為8個空格,示例代碼如下。>>>x='12\t34\t56'>>>x'12\t34\t56'>>>x.expandtabs() #默認(rèn)將每個Tab字符替換為8個空格'123456'>>>x.expandtabs(0) #參數(shù)為0時刪除全部Tab字符'123456'>>>x.expandtabs(4) #將每個Tab字符替換為4個空格'123456'6.find(sub[,start[,end]])在當(dāng)前字符串的[start,end]范圍內(nèi)查找子字符串sub,返回sub第一次出現(xiàn)的位置,沒有找到時返回-1,示例代碼如下。>>>x='abcdabcd'>>>x.find('ab')0>>>x.find('ab',2)4>>>x.find('ba')-17.index(sub[,start[,end]])與find()方法相同,只是在未找到子字符串時產(chǎn)生ValueError異常,示例代碼如下。>>>x='abcdabcd'>>>x.index('ab')0>>>x.index('ab',2)4>>>x.index('ba')Traceback(mostrecentcalllast):File"<pyshell#7>",line1,in<module>x.index('ba')ValueError:substringnotfound8.rfind(sub[,start[,end]])在當(dāng)前字符串的[start,end]范圍內(nèi)查找子字符串sub,返回sub最后一次出現(xiàn)的位置,沒有找到時返回-1,示例代碼如下。>>>'abcdabcd'.rfind('ab')49.rindex(sub[,start[,end]])與rfind()方法相同,只是在未找到子字符串時產(chǎn)生ValueError異常示例代碼如下。>>>'abcdabcd'.rindex('ab')410.format(args)字符串格式化,將字符串中用“{}”定義的替換域依次用參數(shù)args中的數(shù)據(jù)替換示例代碼如下。>>>'Mynameis{0},ageis{1}'.format('Tome',23)'MynameisTome,ageis23'>>>'{0},{1},{0}'.format(1,2) #重復(fù)使用替換域'1,2,1'11.format_map(map)使用字典完成字符串格式化,示例代碼如下。>>>'Mynameis{name},ageis{age}'.format_map({'name':'Tome','age':23})'MynameisTome,ageis23'12.isalnum()當(dāng)字符串不為空且不包含任何非數(shù)字或字母(包括各國文字)的字符時返回True,否則返回False。>>>'123'.isalnum()True>>>'123a'.isalnum()True>>>'123#asd'.isalnum() #包含非數(shù)字或字母的字符False>>>''.isalnum() #空字符串,返回FalseFalse>>>'中國'.isalnum()True13.isalpha()字符串不為空且其中的全部字符都是字母(包括各國文字)時返回True,否則返回False,示例代碼如下。>>>'abc'.isalpha()True>>>'abc@#'.isalpha()False>>>''.isalpha()False>>>'ab13'.isalpha()False>>>'中國'.isalpha()True>>>'中國!'.isalpha()False14.isdecimal()字符串不為空且其中的字符全部是數(shù)字時返回True,否則返回False,示例代碼如下。>>>'123'.isdecimal()True>>>'+12.3'.isdecimal()False>>>'12.3'.isdecimal()False15.islower()字符串中的字母全部是小寫字母時返回True,否則返回False示例代碼如下。>>>'abc123'.islower()True>>>'Abc123'.islower()False16.isupper()字符串中的字母全部是大寫字母時返回True,否則返回False示例代碼如下。>>>'ABC123'.isupper()True>>>'aBC123'.isupper()False17.isspace()字符串中的字符全部是空格時返回True,否則返回False示例代碼如下。>>>''.isspace()True>>>'abcd'.isspace()False>>>''.isspace()False18.ljust(width[,fillchar])當(dāng)字符串長度小于width時,在字符串末尾填充fillchar,使其長度等于width。默認(rèn)填充字符為空格示例代碼如下。>>>'abc'.ljust(8)'abc'>>>'abc'.ljust(8,'=')'abc====='19.rjust(width[,fillchar])與ljust()方法類似,只是在字符串開頭填充字符示例代碼如下。>>>'abc'.rjust(8)'abc'>>>'abc'.rjust(8,'0')'00000abc'20.lower()將字符串中的字母全部轉(zhuǎn)換成小寫,示例代碼如下。>>>'ThisisABC'.lower()'thisisabc'21.upper()將字符串中的字母全部轉(zhuǎn)換成大寫,示例代碼如下。>>>'ThisisABC'.upper()'THISISABC'22.lstrip([chars])未指定參數(shù)chars時,刪除字符串開頭的空格、回車符以及換行符,否則刪除字符串開頭包含在chars中的字符,示例代碼如下。>>>'\n\rabc'.lstrip()'abc'>>>'abc123abc'.lstrip('ab')'c123abc'>>>'abc123abc'.lstrip('ba')'c123abc'23.rstrip([chars])未指定參數(shù)chars時,刪除字符串末尾的空格、回車符以及換行符,否則刪除字符串末尾包含在chars中的字符示例代碼如下。>>>'\nabc\r\n'.rstrip()'\nabc'>>>'abc123abc'.rstrip('abc')'abc123'>>>'abc123abc'.rstrip('cab')'abc123'24.strip([chars])未指定參數(shù)chars時,刪除字符串首尾的空格、回車符以及換行符,否則刪除字符串首尾包含在chars中的字符示例代碼如下。>>>'\n\rabc\r\n'.strip()'abc'>>>''.strip('wcn') '..'25.partition(sep)參數(shù)sep是一個字符串,將當(dāng)前字符串從sep第一次出現(xiàn)的位置分隔成3部分:sep之前、sep和sep之后,返回一個三元組。沒有找到sep時,返回由字符串本身和兩個空格組成的三元組,示例代碼如下。>>>'abc123abc123abc123'.partition('12')('abc','12','3abc123abc123')>>>'abc123abc123abc123'.partition('13')('abc123abc123abc123','','')26.rpartition(sep)與partition()類似,只是從當(dāng)前字符串末尾開始查找第一個sep示例代碼如下。>>>'abc123abc123abc123'.rpartition('abc')('abc123abc123','abc','123')>>>'abc123abc123abc123'.partition('ba')('abc123abc123abc123','','')27.replace(old,new[,count])將當(dāng)前字符串包含的old字符串替換為new字符串,省略count時會替換全部old字符串。指定count時,最多替換count次,示例代碼如下。>>>x='ab12'*4>>>x'ab12ab12ab12ab12'>>>x.replace('12','000') #全部替換'ab000ab000ab000ab000'>>>x.replace('12','00',2) #替換2次'ab00ab00ab12ab12'28.split([sep],[maxsplit])將字符串按照sep指定的分隔字符串分解,返回包含分解結(jié)構(gòu)的列表。省略sep時,以空格作為分隔符。maxsplit指定分解次數(shù)。>>>'abcdef'.split() #按默認(rèn)的空格分解['ab','cd','ef']>>>'ab,cd,ef'.split(',') #按指定字符分解['ab','cd','ef']>>>'ab,cd,ef'.split(',',maxsplit=1) #指定分解次數(shù)['ab','cd,ef']29.swapcase()將字符串中的字母大小寫互換,示例代碼如下。>>>'abcDEF'.swapcase()'ABCdef'30.zfill(width)如果字符串長度小于width,則在字符串開頭填充0,使其長度等于width。如果第一個字符為加號或減號,則在加號或減號之后填充0示例代碼如下。>>>'abc'.zfill(8)'00000abc'>>>'+12'.zfill(8)'+0000012'>>>'-12'.zfill(8)'-0000012'>>>'+ab'.zfill(8)'+00000ab'3.3.8字符串的格式化字符串格式化表達(dá)式用“%”表示,基本格式如下。格式字符串%(參數(shù)1,參數(shù)2……)“%”之前為格式字符串,“%”之后為需要填入格式字符串中的參數(shù)。多個參數(shù)之間用逗號分隔。只有一個參數(shù)時,可省略圓括號。在格式字符串中,用格式控制符代表要填入的參數(shù)的格式。>>>'float(%s)'%5'float(5)'>>>"The%s'spriceis%4.2f"%('apple',2.5)"Theapple'spriceis2.50"表3-3Python格式控制符格式控制符說明s將非str類型的對象用str()函數(shù)轉(zhuǎn)換為字符串r將非str類型的對象用repr()函數(shù)轉(zhuǎn)換為字符串c參數(shù)為單個字符(包括各國文字)或字符的Unicode碼,將Unicode碼轉(zhuǎn)化為對應(yīng)的字符d、i參數(shù)為數(shù)字,轉(zhuǎn)換為帶符號的十進(jìn)制整數(shù)o參數(shù)為數(shù)字,轉(zhuǎn)換為帶符號的八進(jìn)制整數(shù)x參數(shù)為數(shù)字,轉(zhuǎn)換為帶符號的十六進(jìn)制整數(shù),字母小寫X參數(shù)為數(shù)字,轉(zhuǎn)換為帶符號的十六進(jìn)制整數(shù),字母大寫e將數(shù)字轉(zhuǎn)換為科學(xué)計數(shù)法格式(小寫)E將數(shù)字轉(zhuǎn)換為科學(xué)計數(shù)法格式(大寫)f、F將數(shù)字轉(zhuǎn)換為十進(jìn)制浮點數(shù)g浮點格式。如果指數(shù)小于-4或不小于精度(默認(rèn)為6)則使用小寫指數(shù)格式,否則使用十進(jìn)制格式。G浮點格式。如果指數(shù)小于-4或不小于精度(默認(rèn)為6)則使用大寫指數(shù)格式,否則使用十進(jìn)制格式。格式控制符的基本格式如下。%[name][flags][width[.precision]]格式控制符其中:name為圓括號括起來的字典對象的鍵width指定數(shù)字的寬度precision指定數(shù)字的小數(shù)位數(shù)lags為標(biāo)識符flags可使用下列符號?!?”:在數(shù)值前面添加正數(shù)(+)或負(fù)數(shù)(-)符號?!?”:在指定數(shù)字寬度時,當(dāng)數(shù)字位數(shù)小于寬度時,將數(shù)字左對齊,末尾填充空格?!?”:在指定數(shù)字寬度時,當(dāng)數(shù)字位數(shù)小于寬度時,在數(shù)字前面填充0。和“+”“-”同時使用時,“0”標(biāo)識不起作用?!啊保嚎崭?,在正數(shù)前面添加一個空格表示符號位。1.格式控制符“s”與“r”“s”用于將非str對象用str()函數(shù)轉(zhuǎn)換為字符串“r”用于將非str類型的對象用repr()函數(shù)轉(zhuǎn)換為字符串示例代碼如下。>>>'%s%s%s'%(123,1.23,'abc') #格式化整數(shù)、浮點數(shù)和字符串'1231.23abc'>>>'%r%r%r'%(123,1.23,'abc') #格式化整數(shù)、浮點數(shù)和字符串"1231.23'abc'"2.轉(zhuǎn)換單個字符格式控制符“c”用于轉(zhuǎn)換單個字符,參數(shù)可以是單個字符或字符的Unicode碼示例代碼如下。>>>'123%c%c'%('a',65)'123aA'3.整數(shù)的左對齊與寬度在用width指定數(shù)字寬度時,若數(shù)字位數(shù)小于指定寬度時,默認(rèn)在左側(cè)填充空格可用標(biāo)識符“0”表示填充0而不是空格。若使用了左對齊標(biāo)志,則數(shù)字靠左對齊,并在其后填充空格保證寬度>>>'%d%d'%(123,1.56)#未指定寬度時,數(shù)字原樣轉(zhuǎn)換,%d會將浮點數(shù)轉(zhuǎn)換為整數(shù)'1231'>>>'%6d'%123 #指定寬度時,默認(rèn)填充空格'123'>>>'%-6d'%123 #指定寬度時,同時左對齊'123'>>>'%06d'%123 #指定寬度并填充0'000123'>>>'%-06d'%123 #同時使用左對齊并填充0,填充0無效,用空格代替'123'>>>'%+6d%+6d'%(123,-123) #用加號表示顯示正負(fù)號,默認(rèn)填充空格'+123-123'>>>'%+06d%+06d'%(123,-123) #用加號表示顯示正負(fù)號,填充0'+00123-00123'4.將整數(shù)轉(zhuǎn)換為八或十六進(jìn)制格式控制符“o”表示將整數(shù)轉(zhuǎn)換為八進(jìn)制,“x”和“X”表示將整數(shù)轉(zhuǎn)換為十六進(jìn)制,示例如下。>>>'%o%o'%(100,-100) #按默認(rèn)格式轉(zhuǎn)換為八進(jìn)制'144-144'>>>'%8o%8o'%(100,-100) #指定寬度'144-144'>>>'%08o%08o'%(100,-100) #指定寬度并填充0'00000144-0000144'>>>'%x%X'%(445,-445) #按默認(rèn)格式轉(zhuǎn)換為十六進(jìn)制'1bd-1BD'>>>'%8x%8X'%(445,-445) #指定寬度'1bd-1BD'>>>'%08x%08X'%(445,-445) #指定寬度并填充0'000001bd-00001BD'5.轉(zhuǎn)換浮點數(shù)在轉(zhuǎn)換浮點數(shù)時,“%e”“%E”“%f”“%F”“%g”和“%G”略有不同,示例如下。>>>x=12.3456789>>>'%e%f%g'%(x,x,x) '1.234568e+0112.34567912.3457'>>>'%E%F%G'%(x,x,x) #注意%e、%g和%E、%G的大小寫區(qū)別'1.234568E+0112.34567912.3457'>>>x=1.234e10>>>'%e%f%g'%(x,x,x)'1.234000e+1012340000000.0000001.234e+10'>>>'%E%F%G'%(x,x,x) '1.234000E+10123

溫馨提示

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

評論

0/150

提交評論