《Python程序設計》第4章 字符串、元組和字典_第1頁
《Python程序設計》第4章 字符串、元組和字典_第2頁
《Python程序設計》第4章 字符串、元組和字典_第3頁
《Python程序設計》第4章 字符串、元組和字典_第4頁
《Python程序設計》第4章 字符串、元組和字典_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

口令:RAPID708第4章

字符串、元組和字典學習目標掌握字符串格式化的使用。掌握字符串常用方法。掌握使用正則表達式進行數據清洗。掌握元組的特性和使用。掌握字典的特性和使用。字符串最開始的字符串編碼是美國標準信息交換碼(ASCII),它采用1個字節(jié)對字符進行編碼,最多只能表示256個符號(10個數字、26個大寫英文字母、26個小寫英文字母及一些其他符號)。隨著信息技術的發(fā)展和信息交互的需要,各國的文字都需要進行編碼,不同的應用領域和場合對字符串編碼的要求也略有不同,此時又分別設計多種不同的編碼格式,常見的主要有UTF-8、UTF-16、UTF-32、GB2312、GBK、CP936、base64、CP437等,Python3.X默認編碼格式是UTF-8。字符串格式化在Python編程中字符串輸入與輸出可以使用字符串格式化的方式進行操作。使用格式如下:%[Flags][Width].[Precision]Type說明:“%”:是轉換說明符的開始?!癋lags”:(可選項)可供選擇的值有:“+”:正數前加正號,負數前加負號?!?”:左對齊?!啊保赫龜登凹涌崭??!?”:位數不夠用“0”填充空?!癢idth”:(可選項)字段占有寬度?!?Precision”:(可選項)精度,小數點后保留的位數?!癟ype”:轉換類型(如表4-1所示)。字符串格式化常用格式字符:字符串格式化>>>num=3438>>>buf="%o"%num>>>buf'6556'>>>buf="%X"%num>>>buf'D6E'>>>buf="%f"%num/345>>>buf="%f"%(num/345)>>>buf'9.965217'>>>buf="%e"%(num/345)>>>buf'9.965217e+00'字符串方法字符串常用方法:find()方法>>>str1="HelloPythonIlikeyou">>>str1.find("like")15count()方法>>>str1="HelloWorld,HelloPython.">>>str1.count("Hello")2split()方法>>>str1="1+2+3+4+5+6+7">>>str1.split("+")['1','2','3','4','5','6','7']join()方法>>>str1=["1","2","3","4","5","6","7"]>>>sep="+">>>sep.join(str1)'1+2+3+4+5+6+7'replace()方法>>>str1="Hello,Python!">>>str1.replace("Python","World")'Hello,World!'strip()方法>>>str1="HelloWorld" #刪除空格>>>str1.split()['Hello','World']>>>str1.split("H") #刪除指定字符“H”['','elloWorld']正則表達式正則表達式是字符串處理的有力技術,通常被用來檢索、替換那些符合某個規(guī)則的文本等,例如,網絡爬蟲、文稿整理或數據篩選等。在Python中提供了“re”模塊來支持正則表達式。正則表達式在匹配文本內容時有兩種匹配模式。一種是貪婪模式,盡可能的匹配更多的內容,另一種是非貪婪模式,總是嘗試匹配盡可能少的字符。例如,使用正則表達式“adc*?”如果用于查找“abcdefg”,使用貪婪模式有可能將找到“abcdefghi”,而使用非貪婪模式查找就有可能找到“abcd”。Python中數量詞默認使用貪婪模式。正則表達式正則表達式常用語法:格式字符說明.除換行符以外的任意單個字符\w匹配單詞字符,即[a-zA-Z0-9]\W匹配非單詞字符集,例如‘*’\d匹配數字,即[0-9]\D匹配非數字\s匹配空白字符\S匹配非空白字符*匹配前一個字符0次或者任意多次+匹配前一個字符1次或者任意多次?匹配前一個字符0次或者1次{m}匹配前一個字符m次{m,n}匹配前一個字符最少m次,最多n次*?非貪婪模式匹配前一個字符0次或者任意多次+?非貪婪模式匹配前一個字符1次或者任意多次??非貪婪模式匹配前一個字符0次或者1次{m,n}?非貪婪模式匹配前一個字符最少m次,最多n次^匹配字符串開頭$匹配字符串結尾\A制定的字符串匹配必須出現在開頭\Z制定的字符串匹配必須出現在結尾|匹配左右任意一個表達式,相當于“或”的含義()匹配一個分組,括號中為該分組所需匹配的內容\<number>引用匹配編號為<number>的分組中的字符串(?P<group_name>)為匹配分組制定特定的組名(?P=<group_name>)引用特定組名的匹配字符串正則表達式“re”模塊的常用方法:方法功能說明compile(pattern[,flags])創(chuàng)建模式對象escape(string)將字符串中所有特殊正則表達式字符轉義findall(pattern,string[,flags])返回包含字符串中所有與給定模式匹配的項的列表finditer(pattern,string,flags=0)返回包含所有匹配項的迭代對象,其中每個匹配項都是match對象fullmatch(pattern,string,flags=0)嘗試把模式作用于整個字符串,返回match對象或Nonematch(pattern,string[,flags])從字符串的開始處匹配模式,返回match對象或Nonepurge()清空正則表達式緩存search(pattern,string[,flags])在整個字符串中尋找模式,返回match對象或Nonesplit(pattern,string[,maxsplit=0])根據模式匹配項分隔字符串sub(pat,repl,string[,count=0])將字符串中所有與pat匹配的項用repl替換,返回新字符串,repl可以是字符串或返回字符串的可調用對象,該可調用對象作用于每個匹配的match對象subn(pat,repl,string[,count=0])將字符串中所有pat的匹配項用repl替換,返回包含新字符串和替換次數的二元元組,repl可以是字符串或返回字符串的可調用對象,該可調用對象作用于每個匹配的match對象正則表達式match()方法匹配:importre#將正則表達式編譯成pattern對象pattern=pile(r'Hello')#使用Pattern匹配文本,獲得匹配結果,無法匹配時將返回Nonematch=pattern.match('HelloPython')#判斷是否匹配到信息ifmatch: #使用Match獲得分組信息print(match.group())正則表達式match()方法匹配:importre#使用正則表達式匹配文本,獲得匹配結果,無法匹配時將返回Nonematch=re.match(r'(.*)Python','HelloPython',re.S)#判斷是否匹配到信息ifmatch: #使用Match獲得分組信息print(match.group())#輸出符合匹配要求的所有匹配項print(match.group(1))#輸出符合匹配要求的特定項正則表達式search()方法匹配:importre#使用正則表達式匹配文本,獲得匹配結果,無法匹配時將返回Nonematch1=re.search(r'is(.*)learn','Lifeistooshort,IlearnPython',re.S)match2=re.match(r'is(.*)learn','Lifeistooshort,IlearnPython',re.S)#判斷是否匹配到信息ifmatch1: print(match1.group())#輸出符合匹配要求的所有匹配項print(match1.group(1))#輸出符合匹配要求的特定項else:print("match1None!")ifmatch2: print(match2.group())#輸出符合匹配要求的所有匹配項print(match2.group(1))#輸出符合匹配要求的特定項else:print("match2None!")正則表達式findall()方法匹配:importrenum=re.findall(r'\d','one1two2three3four4')print(num)正則表達式sub()方法匹配:importrephone="2018-01-01-9527#ThisisPhoneNumber"#將‘#’號以后的數據用''替換num=re.sub(r'#.*$',"",phone)print("PhoneNum:",num)#將所有的非數字數據用''替換num=re.sub(r'\D',"",phone)print("PhoneNum:",num)元組元組和列表操作類似,但是元組屬于不可變序列,元組創(chuàng)建后只可以元素覆蓋不可以修改元素。元組的定義方式和列表相同,但定義時所有元素是放在一對圓括號“()”中,用逗號“,”分隔元素值。>>>1,2,3(1,2,3)>>>(1,2,3)(1,2,3)#只有一個值的元組操作>>>55>>>(5)5>>>5,(5,)>>>(5,)(5,)>>>tuple("123")('1','2','3')>>>tuple([1,2,3])(1,2,3)>>>x=1,2,3,4>>>x[:3](1,2,3)>>>x[2]3字典字典的基本操作:創(chuàng)建字典>>>name_id={"Liang":"0001","Ran":"0002","Jie":"0003"}dict()函數>>>students=dict(name="jie",age=23)>>>students{'name':'jie','age':23}>>>students=[("name","jie"),("age",23)]>>>dict(students){'name':'jie','age':23}讀取字典某個元素>>>students=[("name","jie"),("age",23)]>>>dict(students){'name':'jie','age':23}>>>students['name']'jie'讀取所有的鍵值對列表>>>students=dict(name="jie",age=23)>>>foriteminstudents.items(): print(item)('name','jie')('age',23)添加和修改字典元素>>>students=dict(name="jie",age=23)>>>students["id"]=9527>>>students{'id':9527,'name':'jie','age':23}>>>students["age"]=30>>>students{'id':9527,'name':'jie','age':30}字典是可變序列是一種映射類型,字典中的鍵可以為任意不可變數據,比如整數、實數、復數、字符串、元組等。字典字典常用方法:clear()方法>>>students={"id":9527,"name":"jie","age":23}>>>students{'id':9527,'name':'jie','age':23}>>>students.clear()>>>students{}copy()方法>>>students1={"id":9527,"name":"jie","age

溫馨提示

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

最新文檔

評論

0/150

提交評論