Python語言基礎與應用 課件 第3章 Python 基本數(shù)據(jù)類型_第1頁
Python語言基礎與應用 課件 第3章 Python 基本數(shù)據(jù)類型_第2頁
Python語言基礎與應用 課件 第3章 Python 基本數(shù)據(jù)類型_第3頁
Python語言基礎與應用 課件 第3章 Python 基本數(shù)據(jù)類型_第4頁
Python語言基礎與應用 課件 第3章 Python 基本數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.1數(shù)字類型

3.2數(shù)字類型的運算

3.3字符串類型

3.4字符串類型的操作

3.5精選案例

第3章Python的基本數(shù)據(jù)類型考綱考點

數(shù)字類型:整數(shù)類型、浮點數(shù)類型和復數(shù)類型

數(shù)字類型的運算:數(shù)值運算操作符、數(shù)值運算函數(shù)

字符串類型及格式化:索引、切片、基本的format()格式化方法

字符串類型的操作:字符串操作符、處理函數(shù)和處理方法

類型判斷和類型間轉換知識導圖3.1數(shù)字類型

Python語言提供3種數(shù)字類型:整數(shù)類型、浮點數(shù)類型和復數(shù)類型,分別對應數(shù)學中的整數(shù)、實數(shù)和復數(shù)。

1010是一個整數(shù)類型,10.10是一個浮點數(shù)類型,10+10j是一個復數(shù)類型。3.1.1整數(shù)

在python中,整數(shù)類型的數(shù)據(jù)類型名為int,一般認為整數(shù)類型是沒有取值范圍的限制的。整數(shù)類型可以用4種進制表示:十進制、二進制、八進制、十六進制。一般情況下默認為十進制,如果需要表達成其他進制,需要在數(shù)字前面加上相應的引導符在python中,不同進制的整數(shù)之間是可以直接進行運算和比較的,運算結果默認為十進制示例代碼如下:>>>0xf3+123366>>>0o1167+0b00111110010==0x2f2*2False

Python采用基于值的內(nèi)存管理方式,如果為不同變量賦為相同值,這個值在內(nèi)存中只保存一份,多個變量指向同一個值的內(nèi)存空間的首地址。整數(shù)的緩存

當Python啟動時,會對[-5,256]的整數(shù)進行緩存,因此如果多個變量的值介于該范圍內(nèi),那么這些變量共用同一個值的內(nèi)存空間。對于[-5,256]區(qū)間之外的整數(shù),則有兩種情況:1.同一個程序或交互模式下同一個語句中的同值不同名變量會共用同一個內(nèi)存空間。2.不同程序或交互模式下不同語句是不遵守這個約定的。

Python以上范圍僅適用于交互方式,如果是文件方式,則由于解釋器做了一部分的優(yōu)化,其緩存范圍變?yōu)閇-5,任意整數(shù)]3.1.2浮點數(shù)

Python中的浮點數(shù)是帶小數(shù)點的數(shù)字,用于表示實數(shù),可以是正數(shù)、負數(shù)或零。浮點數(shù)既可以用帶小數(shù)點的數(shù)表示,也可以用科學計數(shù)法表示。

Python語言中的浮點數(shù)類型必須帶有小數(shù)部分,小數(shù)部分可以是0,例如:1100是整數(shù),1100.0是浮點數(shù)。

Python浮點數(shù)類型的數(shù)值范圍和小數(shù)精度受不同計算機系統(tǒng)的限制。除高精度科學計算外的絕大部分運算來說,浮點數(shù)類型的數(shù)值范圍和小數(shù)精度足夠“可靠”。>>>1234567890.987654321

*

1234567890.9876543211.5241578774577044e+18>>>9876543210.123456789

/

1234567890.9876543217.000000066600002??

Python中的浮點數(shù)可以是有限數(shù)、無窮大、NaN(非數(shù)字)等特殊值,示例代碼如下:>>>float("inf")#無窮大inf>>>float("-inf")#無窮小-inf>>>float("nan")#非數(shù)字nan??在Python中,由于浮點數(shù)的存儲方式和計算機的精度限制,有時候會出現(xiàn)浮點數(shù)比較不準確的問題。示例代碼如下:>>>0.7+0.20.8999999999999999#結果不是0.9>>>0.7-0.20.49999999999999994#結果不是0.5>>>0.7-0.2==0.5#直接比較失敗False可提供兩種解決方案??方法1:使用abs()函數(shù),abs()函數(shù)是用于返回一個數(shù)的絕對值,示例代碼如下:>>>abs((0.7-0.2)-0.5)<10e-6True說明:

這里使用了abs()函數(shù)計算兩個浮點數(shù)的差的絕對值,然后與一個小的差值10e-6進行比較。如果差的絕對值小于這個差值,就可以認為兩個浮點數(shù)相等。當然這個差值的選擇需要根據(jù)具體情況進行調(diào)整。如果需要進行更精確的比較,可以選擇更小的差值。??方法2:使用round()函數(shù),round()函數(shù)用于對浮點數(shù)進行四舍五入。示例代碼如下:>>>round(1.2345,2)#四舍五入,保留兩位小數(shù)1.23>>>round(0.7-0.2,3)0.5>>>round(0.7-0.2,3)==0.5True說明:

這里先使用round()函數(shù)對浮點數(shù)進行四舍五入,然后再進行浮點數(shù)的比較。當然關于浮點數(shù)比較問題的解決還有一些其他的辦法,比如使用decimal庫等等,無論使用哪種方法都需要結合實際情況考慮需要比較的精度,處理掉不確定尾數(shù)對比較的干擾。3.1.3復數(shù)

復數(shù)類型表示數(shù)學中的復數(shù)。復數(shù)有一個基本單位元素j,叫作“虛數(shù)單位”。含有虛數(shù)單位的數(shù)被稱為復數(shù)。例如:

11.3+4j

-5.6+7j

1.23e-4+5.67e+89j復數(shù)類型

Python語言中,復數(shù)可以看作是二元有序實數(shù)對(a,b),表示為:a

+

bj,其中,a是實數(shù)部分,簡稱實部,b是虛數(shù)部分,簡稱虛部。虛數(shù)部分通過后綴“J”或者“j”來表示。需要注意,當b為1時,1不能省略,即

1j表示復數(shù),而j則表示Python程序中的一個變量。復數(shù)類型

Python內(nèi)置支持復數(shù)類型及運算,并且形式上與數(shù)學上的復數(shù)完全一致。#內(nèi)置函數(shù)abs()計算復數(shù)的模復數(shù)類型

復數(shù)類型中實部和虛部都是浮點類型,對于復數(shù)z,可以用z.real和z.imag分別獲得它的實數(shù)部分和虛數(shù)部分>>>(1.23e4+5.67e4j).real12300.0>>>(1.23e4+5.67e4j).imag56700.0>>>1.23e4+5.67e4j.imag

#

先獲得5.67e4j的虛部,再與1.23e4進行求和計算69000.0補充:分數(shù)

Python中的標準庫fractions中的Fraction對象支持分數(shù)運算#創(chuàng)建分數(shù)對象#查看分子#查看分母#分數(shù)運算,自動進行通分#把實數(shù)轉換為分數(shù)??

for語句,是一種循環(huán)結構,其作用是根據(jù)判斷條件確定一段程序是否需要反復執(zhí)行。示例代碼如下:>>>foriinrange(10): print(i,end=",")0,1,2,3,4,5,6,7,8,9,3.2數(shù)字類型的運算3.2.1算術運算操作符

Python提供了7個基本的數(shù)值運算操作符操作符說明+x+y,x與y的和-x-y,x與y的差*x*y,x與y的積/x/y,x除以y的商//x//y,不大于x除以y的商的最大的整數(shù)%x%y,x除以y的余數(shù),常稱為模運算**x**y,x的y次冪??

1.減除運算與數(shù)學上的意義相同,示例代碼如下:>>>1.23-54.6e-20.6839999999999999>>>1.23/50.246>>>6/23.0說明:上例中整數(shù)6除以整數(shù)2的結果是浮點數(shù)3.0,即除法運算結果的數(shù)據(jù)類型為浮點型數(shù)據(jù)。??

2.運算符“+”除了用于算術加法以外,還可以用于列表、元組、字符串的連接,但不支持不同類型的對象之間相加或連接。??

3.運算符“*”除了用于算術乘法以外,還可以用于列表、元組、字符串這幾個序列類型與整數(shù)的乘法,表示序列元素的重復,生成新的序列對象。示例代碼如下:>>>1.23*54.6e-2#兩個浮點數(shù)相乘0.6715800000000001>>>True*3#True當作13>>>False*3#False當作00>>>[1,2,3]*3#列表重復[1,2,3,1,2,3,1,2,3]>>>(1,2,3)*3#元組重復(1,2,3,1,2,3,1,2,3)>>>"abc"*3#字符串重復'abcabcabc'

4.運算符/和//在Python中分別表示算數(shù)除法和算術求整(floordivision)#數(shù)學意義上的除法#如果兩個操作數(shù)都是整數(shù),結果為整數(shù)#如果兩個操作數(shù)中有實數(shù),結果為實數(shù)形式的整數(shù)值#向下取整說明:

使用“/”除法運算符時,即使兩個操作數(shù)都是整數(shù),結果也是浮點數(shù)。而使用“//”運算符時,結果總是一個整數(shù)。??

5.運算符“%”可以用于整數(shù)或實數(shù)的求余運算,也稱為求模運算。“%”也可用于字符串格式化,不過不推薦使用此用法做字符串格式化。示例代碼如下:>>>789%23#求余數(shù)7>>>123.45%3.2#實數(shù)也可以求余,注意精度1.849999999999996>>>'%c,%d'%(65,65)#把65分別格式化為字符和整數(shù)'A,65'>>>'%f,%s'%(65,65)#把65分別格式化為實數(shù)和字符串'65.000000,65'??

6.運算符**表示冪乘,等價于內(nèi)置函數(shù)pow()。示例代碼如下:>>>3**2#3的2次方,等價pow(3,2)9>>>pow(3,2,8)#等價于(3**2)%81>>>9**0.5#9的0.5次方,即9的平方根3.0>>>(-9)**0.5#負數(shù)的平方根(1.8369701987210297e-16+3j)??以上我們所講述的這些操作符(+、-、*、/、//、%、**)都是二元運算操作符,可以與賦值符號(=)相連,形成增強賦值操作符(+=、-=、*=、/=、//=、%=、**=),有關增強賦值操作在2.4.2節(jié)中已介紹了。增強賦值操作符可以簡化對同一變量賦值語句的表達,也是python簡潔語言的一種特色,建議大家多多使用。算術運算符總結??數(shù)值運算可能改變計算結果的數(shù)據(jù)類型,類型的改變與運算符有關,基本規(guī)則如下:整數(shù)和浮點數(shù)混合運算,輸出結果是浮點數(shù)。整數(shù)之間運算,產(chǎn)生結果類型與操作符相關,例如,除法運算(/)的結果是浮點數(shù)。整數(shù)或浮點數(shù)與復數(shù)運算,輸出結果是復數(shù)。3.2.2數(shù)值運算函數(shù)

Python解釋器提供了一些內(nèi)置函數(shù),在這些內(nèi)置函數(shù)之中,有6個函數(shù)與數(shù)值運算相關函數(shù)說明abs(x)求x的絕對值divmod(x,y)結果為(x//y,x%y)的一個元組pow(x,y[,z])結果為(x**y)%z;當z參數(shù)省略時,結果為x**yround(x[,n])對x四舍五入到n位;當n參數(shù)省略時,求x四舍五入的整數(shù)值max(x1,x2…xn)求x1,x2…xn的最大值,n無限制min(x1,x2…xn)求x1,x2…xn的最小值,n無限制??

abs()函數(shù)是一個內(nèi)置函數(shù),用于返回一個數(shù)的絕對值,其格式如下:

abs(number)參數(shù):number一個數(shù)字,可以是整數(shù)、浮點數(shù)或復數(shù)。返回值:如果參數(shù)是正數(shù)或零,則返回該參數(shù)本身。如果參數(shù)是負數(shù),則返回該參數(shù)的相反數(shù)。>>>abs(-5)5>>>abs(0)0>>>abs(3.33)3.33>>>abs(3-4j)5.0說明:

復數(shù)以實部和虛部為二維坐標系的橫縱坐標,abs()就是求坐標到原點的距離。??

divmod()是Python的內(nèi)置函數(shù),它用于返回一個元組,該元組包含兩個元素,除法的商和余數(shù)。這個函數(shù)接受兩個參數(shù),第一個參數(shù)是被除數(shù),第二個參數(shù)是除數(shù)。其格式如下:divmod(dividend,divisor)參數(shù):dividend是被除數(shù),divisor是除數(shù)。執(zhí)行后的結果將是一個包含兩個元素的元組,第一個元素是商,第二個元素是余數(shù)。示例代碼如下:>>>divmod(105,12)(8,9)>>>x,y=divmod(105,12)>>>x8>>>y9??

pow()函數(shù),隨其參數(shù)個數(shù)的不同,有不同的計算方式,格式如下:

pow(x,y,z)其中,pow(x,y)函數(shù)與x**y相同,用于計算x的y次冪;pow(x,y,z)是用于計算x的y次冪的結果對z求模,因為模運算與冪運算是同時進行的,所以運算速度會比直接做計算x的y次冪的結果對z求模速度快得多。示例代碼如下:>>>pow(8,9)134217728>>>pow(0xf,0b10)225>>>pow(34,1999998,10000)#求34的1999998次方的后四位6496>>>34**1999998%10000#對比上一條語句執(zhí)行速度6496??

round()函數(shù)用于對浮點數(shù)進行四舍五入。這個函數(shù)接受兩個參數(shù),要四舍五入的數(shù)字以及小數(shù)點后要保留的位數(shù)。格式如下:round(number,ndigits)其中,number是round()函數(shù)要處理的數(shù)字。ndigits是整數(shù)值,可選項,指在結果中包含的小數(shù)位數(shù)。示例代碼如下:>>>round(3.14159)3>>>round(3.14159,3)3.142>>>round(2.5)#x.5形式,x為2,偶數(shù),不進位2>>>round(1.5)#x.5形式,x為1,奇數(shù),進位2>>>round(0.500001)1說明:對于x.5的形式而言,當x為偶數(shù)時,x.5并不進位;當x為奇數(shù)時,x.5才進位??

max()與min()函數(shù):找出任意多個數(shù)字的最大值和最小值,并輸出結果。示例代碼如下:>>>max(34,56,2,12,100,0b1010,0xff)255>>>min([1,3,5,9])1>>>max("apple","banana","pear")'pear'其中,字符串比較大小是按照Unicode編碼值大小進行的

求解如下題目:1.-3+4j的絕對值2.求102

,551999999的后四位3.3字符串類型3.3.1字符串的表示字符串定界符在python中,只有字符串類型的常量和變量,所以單個字符也是字符串。字符串用單引號、雙引號和三單引號、三雙引號作為定界符,且不同的定界符可以互相嵌套使用。字符串類型>>>

print('這是"單行字符串"')這是"單行字符串">>>

print("這是'單行字符串'")這是'單行字符串'>>>print("""這是'多行字符串'的第一行這是'多行字符串'的第二行""")這是'多行字符串'的第一行這是'多行字符串'的第二行>>>print('''這是"多行字符串"的第一行這是"多行字符串"的第二行''')這是"多行字符串"的第一行這是"多行字符串"的第二行??某些字符在Python中具有特殊含義,如引號、換行符等,直接使用它們可能導致語法錯誤或產(chǎn)生預期之外的結果,所以Python提供了轉義字符,允許我們在字符串中正確表示和使用這些特殊字符,以確保代碼的正確性和可讀性。轉義字符

Python中的轉義字符是以反斜杠“\”開頭的特殊字符,用于表示特殊含義或特殊字符。??以下是一些常見的Python轉義字符:\n:換行符,表示新的一行開始。\t:制表符,表示一個制表位。\r:回車符,表示將輸出移到新的一行。\\:反斜杠符,表示一個反斜杠字符。\':單引號,表示一個單引號字符。\":雙引號,表示一個雙引號字符。示例代碼如下:>>>print("Never\ngiveup")Nevergiveup>>>print("我是反斜杠,我的符號表示是\\")我是反斜杠,我的符號表示是\>>>print("Never\tgiveup")Never giveup??在有些場合,比如說打開文件的操作,會使用到文件路徑,文件路徑中都是用反斜杠“\”表達路徑的層次,此時我們希望“\“表示的是自己本來的含義,而不是轉義字符的引導符,我們會在字符串前面加上字母r或R表示保持原始字符串,這樣其中的所有字符都表示原始含義而不會進行任何轉義。這種使用方式除了用于文件路徑之外、URL和正則表達式等場合也常常會使用。示例代碼如下:>>>path='c:\windows\notepad.exe'>>>print(path)#\n被轉義為換行符c:\windowsotepad.exe>>>path=r'c:\windows\notepad.exe'#保持原始字符串,不允許轉義>>>print(path)c:\windows\notepad.exe3.3.2字符串的編碼Python3中的字符串默認是Unicode編碼,Unicode是一種能夠表示世界上幾乎所有書寫語言的字符編碼標準,這意味著我們可以在Python字符串中使用各種語言的字符,而無需擔心編碼問題。示例代碼如下:>>>'3-1=2'+chr(10004)'3-1=2?'>>>chr(9792)'♀'>>>'♀的Unicode值是:'+str(ord('♀'))'♀的Unicode值是:9792'>>>foriinrange(10): print(chr(9792+i),end="")♀?♂?????????字符串的運算和Unicode編碼之間存在密切的關系。Unicode為每個字符分配一個唯一的數(shù)字編碼。這意味著,無論使用哪種語言或字符集,Unicode都可以確保每個字符有一個唯一的表示。因此,字符串的運算,如連接、比較、搜索等,實際上是在底層使用Unicode編碼值進行的。如3.2.2節(jié)中max()和min()函數(shù)對字符串的比較,其本質是ucicode編碼值大小的比較。3.3.3字符串的索引在Python中,字符串是一種有序的數(shù)據(jù)類型,每個字符都有一個對應的索引。字符串有兩種序號體系:正向遞增序號和反向遞減序號。

字符串是一個字符序列:字符串最左端位置標記為0,依次增加。對字符串中某個字符的檢索被稱為索引。索引的使用方式如下:<字符串或字符串變量>[序號]

如果字符串長度為L,正向遞增需要以最左側字符序號為0,向右依次遞增,最右側字符序號為L-1;反向遞減序號以最右側字符序號為-1,向左依次遞減,最左側字符序號為-L。??示例代碼如下:>>>'自知者英,自勝者雄。'[-1]'。'>>>x='自知者英,自勝者雄。'>>>x[1]'知'>>>x[-9]'知'說明:

嘗試訪問超出字符串長度的索引會導致IndexError異常,即會出現(xiàn)出錯提示。3.3.4字符串的切片<字符串或字符串變量>[N:M:K]在Python中,字符串切片是一種操作字符串的方法,它允許我們提取字符串的子串。其格式如下:其中,切片操作使用冒號(:)分隔三個參數(shù):起始索引N、切片結束索引M和步長K。??注意以下幾點:切片操作是左閉右開的,即起始索引N是包括的,但結束索引M是排除的。如果沒有指定結束索引M,那么切片將到字符串的末尾。步長K默認值為1,即每次移動一個字符。如果是負數(shù)步長,那么切片會從后向前進行。切片操作不會改變原始字符串,而是創(chuàng)建一個新的字符串。??示例代碼如下:>>>'國家富強,人民幸福!'[8:4]#起始索引大于結束索引,且步長1,結果空串''>>>'國家富強,人民幸福!'[:4]#起始索引省略,默認為0'國家富強'>>>'國家富強,人民幸福!'[5:]#結束索引省略,默認取到最后一個字符'人民幸福!'>>>x="〇一二三四五六七八九十">>>x[1:8:2]#起始索引1到結束索引8,步長為2'一三五七'>>>x[::-1]#逆序操作'十九八七六五四三二一〇'說明:

以前的一些程序設計中編程較復雜的逆向輸出,可以用字符串的切片直接完成。3.4字符串類型的操作3.4.1字符串操作符在Python中,字符串操作符主要用于字符串的連接、重復和其他操作。基本的3個字符串操作符如下表所示:操作表達式說明a+b連接兩個字符串a(chǎn)與ba*n或n*a復制n次字符串a(chǎn)ains如果a是s的子串,返回True;否則返回False??示例代碼如下:>>>x="擁抱"+"人工智能時代">>>x'擁抱人工智能時代'>>>"人工智能"*2'人工智能人工智能'>>>'智能'inxTrue>>>'我們'inxFalse3.4.2字符串操作函數(shù)

Python語言提供了一些對字符串處理的內(nèi)置函數(shù)函數(shù)說明len(x)返回字符串x的長度,或者組合數(shù)據(jù)類型元素個數(shù)str(x)返回x所對應的字符串形式,x是任意類型數(shù)據(jù)chr(x)返回整數(shù)x所對應的Unicode字符ord(x)返回單字符x所對應的Unicode編碼值int(x)返回x所對應的整數(shù)形式,x是浮點數(shù)或字符串float(x)返回x所對應的浮點數(shù)形式,x是整數(shù)或字符串??示例代碼如下:>>>len('科技崛起,國運昌盛')9>>>str("china")'china'>>>str(78)'78'>>>str([1,2,3])'[1,2,3]'>>>chr(10010)'?'>>>ord("&")38說明:chr()與ord()這兩個函數(shù)是一對互為逆運算的函數(shù),用來在字符和其對應的Unicode編碼值之間進行轉換;str()函數(shù)的參數(shù)是任意的數(shù)據(jù)類型,但前提是系統(tǒng)能識別的任意的數(shù)據(jù)類型;len()函數(shù)求長度時,漢字、英文字母和標點符號等都是做為一個長度單位處理。??有如下示例代碼:>>>int(567.567)567>>>int("567.567")Traceback(mostrecentcalllast):File"<pyshell#164>",line1,in<module>int("567.567")ValueError:invalidliteralforint()withbase10:'567.567'>>>float(567)567.0>>>float("567.567")567.567說明:int()和float()轉換字符串數(shù)據(jù)時,只能轉換系統(tǒng)能正確識別的字符串數(shù)據(jù),并不是所有的字符串都可以轉換。3.4.3字符串處理方法

方法也是一個函數(shù),只是調(diào)用方式不同。函數(shù)采用func(x)方式調(diào)用,而方法則采用<a>.func(x)形式調(diào)用。方法僅作用于前導對象<a>。方法名說明str.upper()返回一個全部字符大寫的新字符串str.lower()返回一個全部字符小寫的新字符串str.find(sub)返回sub子串在str中的首次出現(xiàn)的索引值,如不存在,則返回-1str.strip(chars)移除字符串str頭尾中的chars字符str.split(sep)返回一個列表,列表中的元素由str根據(jù)sep切片構成str.replace(old,new)返回一個新字符串,其中所有old子串被new替換str.count(sub)返回str中sub子串出現(xiàn)的次數(shù)str.center(width,fillchar)str字符串居中對齊,兩邊用fillchar填充str.join(seq)以str做分隔,將seq中所有元素合并為一個新字符串??

str.upper()和str.lower()是一對方法,用于實現(xiàn)字符串str中全部字符的大寫或者小寫轉換。示例代碼如下:>>>x="Believeinyourself.">>>x.upper()'BELIEVEINYOURSELF.'>>>x.lower()'believeinyourself.'>>>x'Believeinyourself.'??

str.find()方法是可以指定查找范圍的。其具體格式如下:

str.find(sub[,start[,end]])sub:必選參數(shù),代表要查找的子字符串。start和end:這兩個參數(shù)是可選的,是字符串中的正向遞增序號和反向遞減序號,用于指定查找的范圍。start代表查找的起始位置,end代表查找的結束位置。注意,這里的范圍是左閉右開的,即包括start索引位置但不包括end索引位置。如果不指定這兩個參數(shù),查找范圍默認為整個字符串。??示例代碼如下:>>>x="Breakbarriers,buildbridges.">>>x.find("build")#返回第一次出現(xiàn)的位置16>>>x.find("d",7)#從指定位置7開始查找20>>>x.find("b",6,19)#從指定下標范圍6至19中查找第一個符合要求的6>>>x.find("break",6,19)#指定字符串不存在,返回-1值-1說明:str.find(x)方法是區(qū)分大小寫的,這意味著它會將"Break"和"break"當作不同的字符串處理;str.find(x)方法返回的是子字符串在主字符串中首次出現(xiàn)的位置,如果希望找到所有出現(xiàn)的位置,可能需要使用循環(huán)或其他方法。??

str.strip(chars)方法,從字符串str中去掉在其頭尾chars中列出的字符。chars是一個字符串,可以有一個或多個字符,其中出現(xiàn)的每個字符如果在頭尾部的話都會被去掉。>>>x="----中國人正走向世界舞臺的中央----">>>x.strip("")#去掉x的頭尾空格'----中國人正走向世界舞臺的中央----'>>>x.strip("-")#去掉x中的“-”,但因為-不在頭尾部,返回原始字符串'----中國人正走向世界舞臺的中央----'>>>x.strip("-")#去掉x的頭尾空格和“-”'中國人正走向世界舞臺的中央'??

str.split(sep)能夠根據(jù)sep分割字符串str,分割后的內(nèi)容以列表類型返回??梢杂糜趯σ幚淼拇笪谋咀龀醪綌?shù)據(jù)處理。示例代碼如下:>>>x="Boldactionsbreedbrightfutures.">>>x.split()#默認以空格切割['Bold','actions','breed','bright','futures.']>>>x.split("b")#用字符b切割['Boldactions','reed','rightfutures.']>>>x.split("br")#用字符br切割['Boldactions','eed','ightfutures.']??說明:str.split()若不指定分隔符,則字符串中的任何空白符號(包括空格、換行符、制表符等)的連續(xù)出現(xiàn)都將被認為是分隔符。示例代碼如下:>>>x="Bold\n\nactions\t\tbreedbrightfutures.">>>x.split()['Bold','actions','breed','bright','futures.']上例中“\n“是換行符,”\t”是制表符,在默認方式下都被認為是分隔符。??

str.replace()方法,其格式如下:

str.replace(old,new[,count])說明:(1)str:要進行替換的原始字符串。(2)old:要替換的子字符串。(3)new:用于替換old子字符串的新子字符串。(4)count:一個可選參數(shù),指定最大替換次數(shù)。如果指定了該參數(shù),replace()方法將在達到最大替換次數(shù)后停止替換。??示例代碼如下:>>>x="Bebrave,bebold,bebeautiful.">>>x.replace("be","is")#所有的be都被替換'Bebrave,isbold,isisautiful.'>>>x.replace("be","is",1)#只替換第一個出現(xiàn)的1個be'Bebrave,isbold,bebeautiful.'>>>x.replace("be","is",2)#替換依次出現(xiàn)的2個be'Bebrave,isbold,isbeautiful.'>>>x.replace("Bold","happy")#無法替換,不會出現(xiàn)出錯提示'Bebrave,bebold,bebeautiful.'說明:replace()方法不會更改原始字符串,而是返回一個新的字符串;replace()方法是大小寫敏感的;如果指定的old子字符串在原始字符串中不存在,replace()方法將返回原始字符串的副本,不做任何更改;count參數(shù)可以用來限制替換的次數(shù)。??

str.count()方法,其格式如下:

str.count(sub[,start[,end]])(1)str:要計算子字符串出現(xiàn)次數(shù)的原始字符串。(2)sub:要計算出現(xiàn)次數(shù)的子字符串。(3)start和end:可選參數(shù),用于指定計算的起始和結束位置。默認情況下,start為0,end為字符串的長度。??示例代碼如下:>>>x="Knowledgeiskey,kindnessunlocksdoubledoors.">>>x.count("s")5>>>x.count("ss")1>>>x.count("sss")#不存在時返回00>>>x.count("s",12)4>>>x.count("s",12,40)3說明:count()方法是大小寫敏感的;如果指定的sub子字符串在原始字符串中不存在,count()方法將返回0;通過提供start和end參數(shù),可以限制計算的范圍。該方法還可以用于計算或統(tǒng)計特定元素在列表、集合中出現(xiàn)的次數(shù)。??

str.center()方法,其格式如下所示:

str.center(width[,fillchar])(1)str:要居中的原始字符串。(2)width:指定新字符串的總寬度。如果原始字符串的長度小于width,則會在兩側填充字符以達到該寬度;當width小于字符串長度時,返回原始字符串。(3)fillchar:一個可選參數(shù),用于指定填充字符,只能是單個字符,默認值為空格。??示例代碼如下:>>>"智慧中國".center(15)#總長度15,“智慧中國”居中,其余用空格填充'智慧中國'>>>"智慧中國".center(15,"*")#總長度15,“智慧中國”居中,其余用“*“填充'******智慧中國*****'>>>"智慧中國".center(2,"*")#總長度2,小于“智慧中國”字符串長度4'智慧中國'>>>"智慧中國".center(15,"*-")#fillchar是兩個字符,出錯Traceback(mostrecentcalllast):File"<pyshell#197>",line1,in<module>"智慧中國".center(15,"*-")TypeError:Thefillcharactermustbeexactlyonecharacterlong??

str.join()方法,其格式如下所示:

str.join(seq)(1)str:用作分隔符的字符串。(2)seq:一個序列對象(如字符串、列表、元組等),其元素將被連接成一個字符串。??示例代碼如下:>>>"".join("change")#給change中增加空格做為分隔'change'>>>",".join("change")#給change中增加逗號做為分隔'c,h,a,n,g,e'>>>"*".join([1,2,3,4])#列表中元素為int,無法連接字符串“*”Traceback(mostrecentcalllast):File"<pyshell#30>",line1,in<module>"*".join([1,2,3,4])TypeError:sequenceitem0:expectedstrinstance,intfound>>>"*".join(["1","2","3","4"])#列表中元素為str,連接成功'1*2*3*4'說明:join()方法是一個字符串方法,因此調(diào)用它的對象通常是一個字符串,該字符串用作分隔符;seq中的元素必須都是字符串,如果seq中包含非字符串元素,必須在調(diào)用join()方法之前將其轉換為字符串;join()方法不會更改原始字符串,而是返回一個新的字符串。??使用split()和join()方法可以刪除字符串中多余的空白字符,如果有連續(xù)多個空白字符,只保留一個。示例代碼如下:>>>x="DreamActionSuccess">>>"".join(x.split())#刪除所有空格'DreamActionSuccess'>>>"".join(x.split())#整理成一個空格連接單詞'DreamActionSuccess'說明:split()方法和join()方法可以結合使用,以實現(xiàn)字符串的拆分和重新組合。這種結合使用在處理字符串時非常常見,特別是在需要對字符串進行分割、修改或重新格式化的情況下。??例3-1首都單詞處理問題描述:給定一個包含多個國家首都單詞的字符串,對這些首都單詞進行處理,并生成一個新的字符串。例如輸入:"beijing,london,paris,tokyo,berlin",輸出:"BeijingLondonParisTokyoBerlin"程序分析:(1)將輸入字符串拆分成首都單詞的列表。(2)對每個首都單詞的首字母進行大寫處理。(3)將處理后的首都單詞列表重新組合為一個新的字符串,其中每個單詞之間用空格分隔。(4)輸出處理后的新字符串。??程序代碼如下:#使用國家的首都單詞作為示例輸入input_string="beijing,london,paris,tokyo,berlin"

#使用split()方法拆分字符串為單詞列表words=input_string.split(",")

#使用for循環(huán)對每個單詞的首字母進行大寫處理processed_words=[]#創(chuàng)建一個空列表forwordinwords:processed_word=word.capitalize()#使用capitalize()方法把單詞首字母轉大寫

processed_words.append(processed_word)#使用append()給列表添加元素

#使用join()方法將處理后的單詞列表重新組合為一個新的字符串output_string="".join(processed_words)

#打印結果print(output_string)3.4.4format()方法

字符串格式化format()方法的基本使用格式是:

<模板字符串>.format(<參數(shù)>)其中,模板字符串是一個由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果。槽用大括號({})表示,對應format()方法中逗號分隔的參數(shù)。示例代碼如下:format()方法的基本使用>>>"{}一道同云雨,明月何曾是兩鄉(xiāng)".format("青山")'青山一道同云雨,明月何曾是兩鄉(xiāng)'

如果模板字符串有多個槽,且槽內(nèi)沒有指定序號,則按照槽出現(xiàn)的順序分別對應.format()方法中的不同參數(shù)。>>>"{}一道同云雨,{}何曾是兩鄉(xiāng)".format("青山","明月")'青山一道同云雨,明月何曾是兩鄉(xiāng)'

可以通過format()參數(shù)的序號在模板字符串槽中指定參數(shù)的使用,參數(shù)從0開始編號>>>"{1}一道同云雨,{0}何曾是兩鄉(xiāng)".format("青山","明月")'明月一道同云雨,青山何曾是兩鄉(xiāng)??如果模板字符串中出現(xiàn)的槽的數(shù)量和format()函數(shù)中出現(xiàn)的參數(shù)數(shù)量上不一致,則必須在槽中使用序號指定參數(shù)使用,否則會產(chǎn)生IndexError錯誤。示例代碼如下:>>>"{}一道同云雨,{}何曾是兩鄉(xiāng)".format("青山")Traceback(mostrecentcalllast):File"<pyshell#131>",line1,in<module>"{}一道同云雨,{}何曾是兩鄉(xiāng)".format("青山")IndexError:tupleindexoutofrange其解決問題代碼如下:>>>"{0}一道同云雨,{0}何曾是兩鄉(xiāng)".format("青山")'青山一道同云雨,青山何曾是兩鄉(xiāng)'??如果希望在模板字符串中直接輸出大括號,則必須在模塊字符串中用“{{”表示“{”,用“}}”表示“}”。示例代碼如下:>>>"他吟誦道:{{{0}一道同云雨,{1}何曾是兩鄉(xiāng)}}".format("青山","明月")'他吟誦道:{青山一道同云雨,明月何曾是兩鄉(xiāng)}'說明:format()方法通常與print()函數(shù)一起構成輸出語句。

format()方法中模板字符串的槽除了包括參數(shù)序號,還可以包括格式控制信息。{<參數(shù)序號>:<格式控制標記>}format()方法的格式控制參數(shù)序號編號從0開始,對應format()中參數(shù)的個數(shù),自動順序編號。格式控制標記以引號(:)作為開始,其后包括<填充><對齊><寬度><,><.精度><類型>6個字段,其格式內(nèi)容如后表所示,這些字段都是可選的,也可以組合使用。??<填充><對齊><寬度><,><.精度><類型>單個填充字符<左對齊>右對齊^居中對齊輸出寬度數(shù)字千位分隔符浮點小數(shù)位數(shù)或字符串最大輸出長度整數(shù)類型b,c,d,o,x,X浮點數(shù)類型e,E,f,%說明:<寬度>:指當前槽的設定的輸出字符寬度,如果該槽對應參數(shù)的實際值比寬度設定值大,則使用對應參數(shù)的實際長度。如果該參數(shù)值的實際位數(shù)小于指定寬度,則按照對齊指定方式在設定寬度內(nèi)對齊,不足部分默認以空格字符補充。<填充>:指<寬度>內(nèi)除了對應參數(shù)外的補充字符采用什么方式表示,默認采用空格,填充字符只能使用單個字符。<對齊>:指對應參數(shù)在<寬度>內(nèi)輸出時的對齊方式,分別使用<、>、^三個符號表示左對齊、右對齊和居中對齊。??示例代碼如下:>>>x="國泰民安">>>"{:15}".format(x)#默認方式左對齊'國泰民安'>>>"{:1}".format(x)#指定寬度為1,變量x寬度為4'國泰民安'>>>"{:^15}".format(x)#居中對齊'國泰民安'>>>"{:#^15}".format(x)#居中對齊,其余部分用#填充

'#####國泰民安######'??格式控制標記也可以使用變量來表示,即可以用槽來指定所對應的控制標記及數(shù)量。示例代碼如下:>>>x="國泰民安">>>y="井">>>z="^">>>"{0:{1}^15}".format(x,y)'井井井井井國泰民安井井井井井井'>>>"{0:{1}^{2}}".format(x,y,15)'井井井井井國泰民安井井井井井井'>>>"{0:{1}{3}{2}}".format(x,y,15,z)'井井井井井國泰民安井井井井井井'??

<,>:逗號,用于顯示數(shù)字的千位分隔符,適用于整數(shù)和浮點數(shù)。<.精度>:表示兩個含義,以小數(shù)點(.)開頭。對于浮點數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。<類型>:表示輸出整數(shù)和浮點數(shù)類型的格式規(guī)則。對于整數(shù)類型,輸出格式包括6種;對于浮點數(shù)類型,輸出格式包括4種,浮點數(shù)輸出時盡量使用<.精度>表示小數(shù)部分的寬度,有助于更好地控制輸出格式。整數(shù)和浮點數(shù)類型的格式規(guī)則如下表所示:符號功能b輸出整數(shù)的二進制方式c輸出整數(shù)對應的Unicode字符d輸出整數(shù)的十進制方式o輸出整數(shù)的八進制方式x輸出整數(shù)的小寫十六進制方式X輸出整數(shù)的大寫十六進制方式e輸出浮點數(shù)對應的小寫字母e的指數(shù)形式E輸出浮點數(shù)對應的大寫字母E的指數(shù)形式f輸出浮點數(shù)的標準浮點形式%輸出浮點數(shù)的百分形式??示例代碼如下:>>>"{0:b},{0:c},{0:d},{0:x},{0:X}".format(400)'110010000,?,400,190,190'>>>"{0:e},{0:E},{0:f},{0:%}".format(1.2345)'1.234500e+00,1.234500E+00,1.234500,123.450000%'>>>"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(1.2345)'1.23e+00,1.23E+00,1.23,123.45%'>>>"{:.2f}".format(1.23456)'1.23'>>>"{:x}".format(123)#輸出123的16進制形式'7b'>>>"{:.5}".format("創(chuàng)新是引領發(fā)展的第一動力")#輸出字符串的前5位'創(chuàng)新是引領'3.5案例精選??例3-2任意輸入一個三位的整數(shù),求出其各位數(shù)字,并反向順序輸出。例如:輸入123,輸出321方法1:

首先通過eval(input())函數(shù)從用戶處獲取一個整數(shù)輸入,并將其賦值給變量x。使用eval函數(shù)可以解析并執(zhí)行字符串中的Python表達式,但這里其實沒有必要使用eval,因為只是需要獲取輸入,所以可以直接使用int(input())。然后通過整除和取余操作來分離出這個三位數(shù)的百位、十位和個位數(shù)字,分別賦值給變量a、b和c。最后通過算術運算將這三個數(shù)字反向順序組合,并通過print函數(shù)輸出結果。??方法1,用數(shù)學方式求解,代碼如下:x=eval(input("請輸入一個三位數(shù):"))a=x//100b=x//10%10c=x%10print(c*100+b*10+a)??方法2通過input()函數(shù)從用戶處獲取一個字符串輸入,并將其賦值給變量x。然后通過字符串索引和

溫馨提示

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

最新文檔

評論

0/150

提交評論