Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 5、Python字符串操作_第1頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 5、Python字符串操作_第2頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 5、Python字符串操作_第3頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 5、Python字符串操作_第4頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 5、Python字符串操作_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python容器(1)--字符串《智能車Python編程設(shè)計(jì)》課程大綱Python容器簡(jiǎn)述字符串簡(jiǎn)介字符串簡(jiǎn)介字符串編碼

轉(zhuǎn)義字符轉(zhuǎn)義字符簡(jiǎn)介不同的轉(zhuǎn)義字符格式化字符串字符串常用操作創(chuàng)建、訪問字符串截取字符串拼接字符串計(jì)算字符串的長(zhǎng)度分割字符串合并字符串檢索字符串字符串類型的轉(zhuǎn)換內(nèi)置字符串處理函數(shù)Python容器簡(jiǎn)述Python容器簡(jiǎn)述1.為什么需要數(shù)據(jù)容器?假設(shè)你是一位老師,你現(xiàn)在需要用程序記錄班上3名學(xué)生的信息,你需要怎么做呢?可能有人會(huì)說,可以直接定義3個(gè)字符串變量,如下代碼:name1="學(xué)生1"name2="學(xué)生2"name3="學(xué)生3“這種方法雖然可以滿足我們的需求,但是寫起來很麻煩,這里只有3名學(xué)生的信息,那要是有1000個(gè)呢?難道我們要定義1000個(gè)變量嗎?這顯然是不現(xiàn)實(shí)的。那有什么辦法能解決此問題嗎?當(dāng)然有,這就要談起我們數(shù)據(jù)容器了,比如我們定義一個(gè)列表(list)來存儲(chǔ)。my_list=["學(xué)生1","學(xué)生2","學(xué)生3"]只用一個(gè)變量接收多份數(shù)據(jù),可知Python數(shù)據(jù)容器具有組織數(shù)據(jù)的作用Python容器簡(jiǎn)述1.什么是數(shù)據(jù)容器?Python數(shù)據(jù)容器具有組織數(shù)據(jù)的作用數(shù)據(jù)容器就是一種可以存儲(chǔ)多份數(shù)據(jù)的數(shù)據(jù)類型,數(shù)據(jù)容器內(nèi)的數(shù)據(jù)被稱為元素,元素可以是任意數(shù)據(jù)類型(字符串、整數(shù)、布爾等),數(shù)據(jù)容器分為5類,分別是:列表(list)、元組(tuple)、字符串(str)、集合(set)、字典(dict)。Python中的容器主要分為兩種:?序列?和?映射。Python容器簡(jiǎn)述有序序列無序序列列表元組字符串字典集合range、zip、map、enumerate等可變序列不可變序列序號(hào)數(shù)據(jù)結(jié)構(gòu)(類型)定義符號(hào)是否可變是否重復(fù)是否有序1字符串(str)‘’\””\’’’’’’\””””””不可變可重復(fù)有序2列表(list)[]可變可重復(fù)有序3元組(tuple)()不可變可重復(fù)有序4字典(dict){key:value}可變可重復(fù)無序5集合(set){}、空集合set()可變不可重復(fù)無序字符串簡(jiǎn)介字符串簡(jiǎn)介字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。一般記為s=“a1a2…an”(n>=0)。它是編程語言中表示文本的數(shù)據(jù)類型。在程序設(shè)計(jì)中,字符串(string)為符號(hào)或數(shù)值的一個(gè)連續(xù)序列,如符號(hào)串(一串字符)或二進(jìn)制數(shù)字串(一串二進(jìn)制數(shù)字)。字符串在存儲(chǔ)上類似字符數(shù)組,它每一位單個(gè)元素都是能提取的。字符串簡(jiǎn)介字符串簡(jiǎn)介在Python中,字符串屬于不可變有序序列,使用單引號(hào)、雙引號(hào)、三單引號(hào)或三雙引號(hào)作為定界符,并且不同的定界符之間可以互相嵌套。Python中不支持字符類型,統(tǒng)一都用字符串。Python中單字符也作為字符串使用例如:Var1=‘helloworld’Var2=“helloworld”字符串編碼字符串編碼Python3的

默認(rèn)編碼

為Unicode,可以識(shí)別中文字符。最早的字符串編碼是美國(guó)標(biāo)準(zhǔn)信息交換碼ASCII,僅對(duì)10個(gè)數(shù)字、26個(gè)大寫英文字母、26個(gè)小寫英文字母及一些其他符號(hào)進(jìn)行了編碼。ASCII碼采用1個(gè)字節(jié)來對(duì)字符進(jìn)行編碼,最多只能表示256個(gè)符號(hào)(含擴(kuò)展碼)。GB2312是我國(guó)制定的中文編碼,使用1個(gè)字節(jié)表示英語,2個(gè)字節(jié)表示中文;GBK是GB2312的擴(kuò)充,而CP936是微軟在GBK基礎(chǔ)上開發(fā)的編碼方式。GB2312、GBK和CP936都是使用2個(gè)字節(jié)表示中文。字符串編碼字符串編碼UTF-8對(duì)全世界所有國(guó)家需要用到的字符進(jìn)行了編碼,以1個(gè)字節(jié)表示英語字符(兼容ASCII),以3個(gè)字節(jié)表示中文,還有些語言的符號(hào)使用2個(gè)字節(jié)(例如俄語和希臘語符號(hào))或4個(gè)字節(jié)。不同編碼格式之間相差很大,采用不同的編碼格式意味著不同的表示和存儲(chǔ)形式,把同一字符存入文件時(shí),寫入的內(nèi)容可能會(huì)不同,在試圖理解其內(nèi)容時(shí)必須了解編碼規(guī)則并進(jìn)行正確的解碼。如果解碼方法不正確就無法還原信息,從這個(gè)角度來講,字符串編碼也具有加密的效果。字符串編碼以Unicode表示的str通過encode()方法可以編碼為指定的bytes>>>'ABC'.encode('ascii')b'ABC'>>>'中文'.encode('utf-8')b'\xe4\xb8\xad\xe6\x96\x87'>>>'中文'.encode('ascii')Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-1:ordinalnotinrange(128)字符串編碼將編碼轉(zhuǎn)為字符在bytes中,無法顯示為ASCII字符的字節(jié),用\x##顯示。反過來,如果我們從網(wǎng)絡(luò)或磁盤上讀取了字節(jié)流。那么讀到的數(shù)據(jù)就是bytes。要把bytes變?yōu)閟tr,就需要用decode()方法:>>>b'ABC'.decode('ascii')'ABC'>>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')'中文'轉(zhuǎn)義字符轉(zhuǎn)義字符簡(jiǎn)介轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線"\"開頭,后跟一個(gè)或幾個(gè)字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。轉(zhuǎn)義字符Python語言轉(zhuǎn)義符:\輸出帶有引號(hào)的字符串,可以使用轉(zhuǎn)義符“\”你好\””使用\\輸出帶有轉(zhuǎn)移符的字符串例如:轉(zhuǎn)義字符不同的轉(zhuǎn)義字符轉(zhuǎn)義字符說明\續(xù)行符\n換行符\0空\(chéng)t水平制表符,用于橫向跳到下一制表位\”雙引號(hào)\’單引號(hào)\\一個(gè)反斜杠\f換頁\0dd八進(jìn)制數(shù),dd代表的字符,如\012代表換行\(zhòng)xhh十六進(jìn)制數(shù),hh代表的字符,如\x0a代表換行轉(zhuǎn)義字符用轉(zhuǎn)義符可以在字符串中表達(dá)一些不可直接打印的信息例如:用\n表示換行字符串"Hello\nWorld\n\nGoodbye32\n"用print()函數(shù)打印后的輸出效果如下:HelloWorldGoodbye32轉(zhuǎn)義字符為了避免對(duì)字符串中的轉(zhuǎn)義字符進(jìn)行轉(zhuǎn)義,可以使用原始字符串,在字符串前面加上字母r或R表示原始字符串,其中的所有字符都表示原始的含義而不會(huì)進(jìn)行任何轉(zhuǎn)義則該字符串原樣輸出。思考:為了確保網(wǎng)址(/jishipeng/article/details/)有效,可以如何處理。格式化字符串1.使用“%”操作符語法格式:‘%[-][+][0][m][.n]格式化字符’%exp-:指定左對(duì)齊 +:對(duì)正數(shù)加正號(hào)0:表示用0填充空白處,與m一起用m:表示占有寬度 .n:表示小數(shù)點(diǎn)后保留位數(shù)格式化字符:指定類型exp:要轉(zhuǎn)換的項(xiàng)格式化字符串例格式化字符串常見的數(shù)字向字符串格式化符號(hào)描述%c格式化字符及其ASCII碼%s格式化字符串%d格式化整數(shù)%u格式化無符號(hào)整型%o格式化無符號(hào)八進(jìn)制數(shù)%x格式化無符號(hào)十六進(jìn)制數(shù)%X格式化無符號(hào)十六進(jìn)制數(shù)(大寫)%f格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度%e用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)%E作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)%g%f和%e的簡(jiǎn)寫%G%F和%E的簡(jiǎn)寫%p用十六進(jìn)制數(shù)格式化變量的地址格式化字符串常見的數(shù)字向字符串格式化轉(zhuǎn)換字符串表示的含義%[m]s將字符串寫入寬為m的串%[m]d將整數(shù)寫入寬為m的串%[m.n]f將實(shí)數(shù)寫入寬為m的串(其中有n位小數(shù))%[.n]e將實(shí)數(shù)按科學(xué)計(jì)數(shù)法寫入串(其中有n位小數(shù))%%將一個(gè)百分號(hào)寫入串%c格式化字符%d格式化十進(jìn)制整數(shù)%x格式化十六進(jìn)制數(shù)格式化字符串2.使用字符串對(duì)象的format()方法語法格式:str.format(args)str:用于指定字符串的顯示樣式(模板)arg:指定要轉(zhuǎn)換的項(xiàng),多項(xiàng)用逗號(hào)分隔格式化字符串Python2.6開始,新增了一種格式化字符串的函數(shù)str.format(),它增強(qiáng)了字符串格式化的功能。相對(duì)于老版的%格式方法,它有很多優(yōu)點(diǎn)。1.在%方法中%s只能替代字符串類型,而在format中不需要理會(huì)數(shù)據(jù)類型;2.單個(gè)參數(shù)可以多次輸出,參數(shù)順序可以不相同;3.填充方式十分靈活,對(duì)齊方式十分強(qiáng)大;4.官方推薦用的方式,%方式將會(huì)在后面的版本被淘汰。格式化字符串1、位置參數(shù)格式化2、關(guān)鍵字參數(shù)格式化3、混合參數(shù)。需要主要,混合參數(shù)中,#混合參數(shù)傳參。注意位置參數(shù)必須連續(xù)(從0開始)。格式化字符串4、輸出{},避免{}被作為參數(shù)符號(hào)。原樣輸出5、冒號(hào)作為格式化開始位置注意:當(dāng)一個(gè)模板中出現(xiàn)多個(gè)占位符時(shí),指定索引位置的規(guī)范需要統(tǒng)一,要不全部手動(dòng)指定,要不全部自動(dòng)例如:”我是數(shù)值:{:d},我是字符串:{1:s}”錯(cuò)誤格式化字符串多種類型的數(shù)字格式化格式化字符串格式化不同數(shù)值類型格式化字符串

f-string2015年

python3.6根據(jù)PEP498新添加的一種字符串格式化方法,f-string實(shí)際上是在運(yùn)行時(shí)計(jì)算的表達(dá)式,而不是常量值。f-string是文字字符串,前綴為’f’,其中包含大括號(hào)內(nèi)的表達(dá)式。表達(dá)式會(huì)將大括號(hào)中的內(nèi)容替換為其值。name="zings"print(f'mynameis{name}')

字符串常用操作字符串常用操作字符串是一個(gè)字符序列:字符串最左端位置標(biāo)記為0,依次增加。字符串中的編號(hào)叫做“索引”字符串常用操作創(chuàng)建、訪問字符串單個(gè)索引輔助訪問字符串中的特定位置格式為<string>[<索引>]示例:

字符串常用操作字符串索引從0開始,一個(gè)長(zhǎng)度為L(zhǎng)的字符串最后一個(gè)字符的位置是L-1Python同時(shí)允許使用負(fù)數(shù)從字符串右邊末尾向左邊進(jìn)行反向索引,最右側(cè)索引值是-1。示例:字符串常用操作截取字符串可以通過兩個(gè)索引值確定一個(gè)位置范圍,返回這個(gè)范圍的子串------切片格式:<string>[<start>:<end>]start和end都是整數(shù)型數(shù)值,這個(gè)子序列從索引start開始直到索引end結(jié)束,但不包括end位置。示例:字符串常用操作截取(切片)具體格式如下:[start:end:step] [:]提取從開頭(默認(rèn)位置0)到結(jié)尾(默認(rèn)位置-1)的整個(gè)字符串

[start:]從start提取到結(jié)尾

[:end]從開頭提取到end-1 [start:end]從start提取到end-1 [start:end:step]從start提取到end-1,每step個(gè)字符提取一個(gè)字符串常用操作任務(wù)一:提取出生年份和生日日期【通過對(duì)算法的分析,能夠定位、理解、運(yùn)用字符串索引和切片相關(guān)知識(shí)】任務(wù)二:提取出生信息?!境薪尤蝿?wù)一,能夠根據(jù)具體情境進(jìn)行字符串的連接運(yùn)算】任務(wù)三:提取性別信息,并進(jìn)行判斷?!灸軌蚋鶕?jù)具體情景的要求,綜合運(yùn)用選擇結(jié)構(gòu)進(jìn)行數(shù)據(jù)的提取的分析】任務(wù)四:循環(huán)判斷信息。【能夠根據(jù)具體情景的要求,綜合運(yùn)用循環(huán)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的提取的分析】字符串常用操作x=input(“請(qǐng)輸入你的身份證號(hào)碼:”)birthday=x[6:10]+“年”+x[10:12]+“月”+x[12:14]+“日”print(“你的出生年月日是:”,birthday)字符串常用操作拼接字符串字符串之間可以通過+或*進(jìn)行連接加法操作(+)將兩個(gè)字符串連接成為一個(gè)新的字符串乘法操作(*)生成一個(gè)由其本身字符串重復(fù)連接而成的字符串示例:字符串常用操作使用字符串拼接輸出一個(gè)關(guān)于程序員的笑話字符串常用操作programmer_1=“程序員甲:搞IT太辛苦了,我想換行.......怎么辦?”programmer_2=“程序員乙:敲一下回車鍵”print(programmer_1+“\n”+“\n”+programmer_2)字符串常用操作計(jì)算字符串的長(zhǎng)度len()函數(shù)能否返回一個(gè)字符串的長(zhǎng)度在默認(rèn)情況下,不區(qū)分英文、中文,所有字符都按一個(gè)字符計(jì)算示例:字符串常用操作實(shí)際開發(fā)過程中,與編碼相關(guān),先進(jìn)行編碼encode()示例:字符串常用操作分割字符串把一個(gè)字符串按照指定分隔符切分,格式:str.split(sep,maxsplit)示例:字符串常用操作合并字符串格式:strnew=str.join(iterable)str,用于指定合并時(shí)的分隔符iterable,可迭代對(duì)象,該迭代對(duì)象的所有元素將被合并為一個(gè)新的字符串字符串常用操作使用join()方法,通過好友列表生成全部被@的好友示例:字符串常用操作檢索字符串格式:str.count(sub[,start[,end]])str,表示原字符串sub,表示要檢索的子字符串start,表示檢索的起始位置索引end,表示檢索的結(jié)束位置索引字符串常用操作count()檢索指定字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。示例:字符串常用操作格式:str.find(sub[,start[,end]])str,表示原字符串sub,表示要檢索的子字符串start,表示檢索的起始位置索引end,表示檢索的結(jié)束位置索引字符串常用操作find()方法用于檢索是否包含指定字符串如果不存在,則返回-1否則返回首次出現(xiàn)該字符串時(shí)的索引示例:注意:index()同find(),只是字符串不存在時(shí)會(huì)拋出異常。字符串常用操作startwith()方法用于檢索字符串是否以指定字符串開頭endwith()方法用于檢索字符串是否以指定字符串結(jié)尾示例:字符串常用操作字符串類型的轉(zhuǎn)換大多數(shù)數(shù)據(jù)類型都可以通過str()函數(shù)轉(zhuǎn)換為字符串示例:字符串常用操作字符串中字母的大小寫轉(zhuǎn)換

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論