版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python編程從入門到精通指南TOC\o"1-2"\h\u25163第1章Python基礎(chǔ)入門 3268681.1Python安裝與環(huán)境配置 3158231.1.1Windows系統(tǒng)安裝Python 3190541.1.2macOS系統(tǒng)安裝Python 4291721.1.3Linux系統(tǒng)安裝Python 416401.2Python基本語法 436851.2.1代碼注釋 4130691.2.2行與縮進 4105411.2.3語句結(jié)束 532561.3數(shù)據(jù)類型與變量 5311701.3.1數(shù)據(jù)類型 5284941.3.2變量 53490第2章控制結(jié)構(gòu)與基本運算 6222572.1條件語句 6272802.1.1if語句 630102.1.2elif語句 6214852.1.3else語句 6308062.2循環(huán)語句 7214552.2.1for循環(huán) 7268712.2.2while循環(huán) 7280872.3運算符與表達式 786982.3.1算術(shù)運算符 7205072.3.2比較運算符 7280722.3.3邏輯運算符 7171842.3.4賦值運算符 71678第3章函數(shù)與模塊 8179703.1自定義函數(shù) 8105453.1.1函數(shù)定義 870093.1.2調(diào)用函數(shù) 8124073.1.3傳遞參數(shù) 8140013.2內(nèi)置函數(shù) 8313013.3模塊與包的使用 9308963.3.1導入模塊 9322923.3.2使用包 959183.3.3創(chuàng)建模塊和包 93555第4章列表、元組與字典 10274934.1列表操作 10144944.1.1創(chuàng)建列表 10241074.1.2訪問列表元素 10190784.1.3修改列表元素 1082824.1.4添加元素 10308164.1.5刪除元素 1095294.1.6列表切片 11316454.1.7列表遍歷 11119274.2元組操作 11195624.2.1創(chuàng)建元組 117964.2.2訪問元組元素 11207944.2.3元組切片 11266714.2.4遍歷元組 11224174.3字典操作 1210544.3.1創(chuàng)建字典 1220624.3.2訪問字典元素 12129014.3.3添加和修改字典元素 12225534.3.4刪除字典元素 12254144.3.5字典鍵值遍歷 1219861第5章字符串與正則表達式 13105155.1字符串操作 13198455.1.1字符串連接與重復 13268425.1.2字符串切片 13134545.1.3字符串方法 1344295.2正則表達式基礎(chǔ) 14124625.2.1正則表達式符號 1446425.2.2元字符 14198865.2.3正則表達式函數(shù) 14243855.3正則表達式應(yīng)用 14292035.3.1驗證郵箱地址 15262235.3.2提取URL 1514485第6章文件與輸入輸出 15213456.1文件操作 15129126.1.1打開文件 1575166.1.2讀取文件 15166416.1.3寫入文件 16293816.1.4關(guān)閉文件 16270266.2輸入輸出方法 16313166.2.1print()函數(shù) 16236186.2.2input()函數(shù) 17242666.3序列化與反序列化 17285216.3.1使用pickle序列化 173406.3.2使用pickle反序列化 176894第7章面向?qū)ο缶幊?18204807.1類與對象 1870077.1.1類的定義 18268667.1.2對象的創(chuàng)建與使用 18253017.2繼承與多態(tài) 19144037.2.1繼承 19281367.2.2多態(tài) 19280637.3封裝與解耦 1913357.3.1私有屬性與方法 19205197.3.2使用property裝飾器 2030810第8章異常處理與斷言 20271778.1異常處理 2013338.1.1tryexcept語句 2050188.1.2多個except子句 21304648.1.3捕獲所有異常 21229168.1.4else子句 2188388.1.5finally子句 22291248.2自定義異常 22208418.2.1定義自定義異常 2296738.2.2觸發(fā)自定義異常 22318518.3斷言的使用 22133628.3.1基本斷言 22299588.3.2斷言的使用場景 2326751第9章多線程與多進程 23248059.1線程與進程概述 23248849.2線程的使用 23158619.3進程的使用 2426第10章網(wǎng)絡(luò)編程與Web開發(fā) 25720510.1網(wǎng)絡(luò)編程基礎(chǔ) 25755510.2HTTP協(xié)議與Web開發(fā) 252511110.3常用Web框架介紹與應(yīng)用實例 25第1章Python基礎(chǔ)入門1.1Python安裝與環(huán)境配置在開始學習Python編程之前,首先需要安裝Python并配置相應(yīng)的環(huán)境。以下是針對不同操作系統(tǒng)的簡要安裝流程。1.1.1Windows系統(tǒng)安裝Python(1)訪問Python官方網(wǎng)站(s://.org/downloads/),適用于Windows的Python安裝包。(2)雙擊的安裝包,啟動安裝程序。(3)在安裝界面中,保證勾選“AddPythontoPATH”選項,以便在命令提示符中直接運行Python。(4)“InstallNow”進行安裝。(5)安裝完成后,打開命令提示符,輸入,如果出現(xiàn)Python版本信息,說明安裝成功。1.1.2macOS系統(tǒng)安裝Python(1)訪問Python官方網(wǎng)站,適用于macOS的Python安裝包。(2)雙擊的安裝包,啟動安裝程序。(3)按照安裝向?qū)瓿砂惭b。(4)打開終端,輸入,檢查Python是否安裝成功。1.1.3Linux系統(tǒng)安裝Python大部分Linux發(fā)行版已經(jīng)預裝了Python。如果需要安裝特定版本的Python,可以使用以下命令:(1)安裝Python3:sudoaptupdatesudoaptinstall3(2)檢查Python版本:3version1.2Python基本語法Python具有簡潔、易讀的語法,下面介紹一些基本語法概念。1.2.1代碼注釋在Python中,使用井號()表示注釋。注釋不會被執(zhí)行,僅用于提供代碼說明。例如:這是一個注釋print("Hello,World!")這也是一個注釋1.2.2行與縮進在Python中,縮進表示代碼塊,同一代碼塊的語句需要保持相同的縮進級別。通常,縮進使用4個空格。例如:ifTrue:print("True")else:print("False")1.2.3語句結(jié)束在Python中,一條語句結(jié)束后不需要添加分號(;),但為了提高代碼可讀性,建議在多條語句在同一行時使用分號分隔。例如:a=1;b=2;c=31.3數(shù)據(jù)類型與變量在Python中,數(shù)據(jù)類型是動態(tài)的,變量用于存儲數(shù)據(jù)。下面介紹一些常用的數(shù)據(jù)類型和變量。1.3.1數(shù)據(jù)類型Python常見的數(shù)據(jù)類型包括:(1)整數(shù)(int):表示正整數(shù)、負整數(shù)和零。例如:1,1,0(2)浮點數(shù)(float):表示小數(shù)。例如:3.14,0.5(3)字符串(str):表示文本數(shù)據(jù)。例如:"Hello,World!",'Python'(4)列表(list):表示有序的元素集合。例如:[1,2,3],['a','b','c'](5)元組(tuple):表示不可變的有序元素集合。例如:(1,2,3),('a','b','c')(6)字典(dict):表示鍵值對集合。例如:{'name':'','age':20}1.3.2變量變量用于存儲數(shù)據(jù),其命名規(guī)則如下:(1)變量名只能包含字母、數(shù)字和下劃線(_)。(2)變量名不能以數(shù)字開頭。(3)變量名不能使用Python關(guān)鍵字。例如:正確的變量命名name=""age=20錯誤的變量命名2name=""不能以數(shù)字開頭class="Python"不能使用Python關(guān)鍵字第2章控制結(jié)構(gòu)與基本運算2.1條件語句在Python編程中,條件語句用于根據(jù)特定的條件執(zhí)行不同的代碼塊。常見的條件語句有if、elif和else。2.1.1if語句if語句是最基本的條件語句,其語法如下:if條件:代碼塊當條件為真(True)時,將執(zhí)行代碼塊中的代碼。2.1.2elif語句elif語句用于檢查多個條件,并在找到滿足條件的情況下執(zhí)行對應(yīng)的代碼塊。其語法如下:if條件1:代碼塊1elif條件2:代碼塊22.1.3else語句else語句用于在所有條件都不滿足時執(zhí)行一個代碼塊。其語法如下:if條件1:代碼塊1elif條件2:代碼塊2else:代碼塊2.2循環(huán)語句循環(huán)語句用于重復執(zhí)行一段代碼,直到滿足特定條件。Python中主要有兩種循環(huán)語句:for循環(huán)和while循環(huán)。2.2.1for循環(huán)for循環(huán)用于遍歷序列(如列表、元組、字符串)中的每個元素。其語法如下:for變量in序列:代碼塊2.2.2while循環(huán)while循環(huán)在給定的布爾條件為真時重復執(zhí)行代碼塊。其語法如下:while條件:代碼塊在循環(huán)過程中,可以使用break和continue語句控制循環(huán)流程。2.3運算符與表達式運算符用于對數(shù)據(jù)進行基本操作,表達式則由運算符和操作數(shù)組成。2.3.1算術(shù)運算符Python中的算術(shù)運算符包括加()、減()、乘()、除(/)、取模(%)等。2.3.2比較運算符比較運算符用于比較兩個值,并返回一個布爾結(jié)果。常見的比較運算符有等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。2.3.3邏輯運算符邏輯運算符用于組合多個布爾表達式。Python中的邏輯運算符包括與(and)、或(or)和非(not)。2.3.4賦值運算符賦值運算符用于將一個值賦給變量。常見的賦值運算符有等于(=)、加等于(=)、減等于(=)等。通過熟練掌握條件語句和循環(huán)語句,以及各種運算符和表達式,將為后續(xù)學習Python編程打下堅實的基礎(chǔ)。第3章函數(shù)與模塊3.1自定義函數(shù)自定義函數(shù)是組織好的、可重復使用的代碼塊,用于執(zhí)行單一、相關(guān)聯(lián)的任務(wù)。在Python中,通過定義函數(shù)可以提高代碼的模塊性和可讀性。本節(jié)將介紹如何定義和調(diào)用自定義函數(shù)。3.1.1函數(shù)定義函數(shù)定義使用關(guān)鍵字def,后跟函數(shù)名和括號。括號內(nèi)可以包含參數(shù),參數(shù)用于傳遞數(shù)據(jù)到函數(shù)。函數(shù)體位于冒號后面,并且需要縮進。示例:defgreet(name):print("Hello,"name"!")3.1.2調(diào)用函數(shù)定義函數(shù)后,可以通過函數(shù)名和括號來調(diào)用它,括號內(nèi)可以提供參數(shù)。示例:greet("Alice")輸出:Hello,Alice!3.1.3傳遞參數(shù)Python中的函數(shù)可以接受不同類型的參數(shù),包括位置參數(shù)、默認參數(shù)、關(guān)鍵字參數(shù)和可變長參數(shù)。示例:defdescribe_pet(animal_type,pet_name):print(f"\nIhavea{animal_type}named{pet_name}.")describe_pet("hamster","Hamtaro")位置參數(shù)describe_pet(pet_name="Hamtaro",animal_type="hamster")關(guān)鍵字參數(shù)defdescribe_pet_default(animal_type="dog",pet_name):print(f"\nIhavea{animal_type}named{pet_name}.")describe_pet_default(pet_name="Buddy")默認參數(shù)3.2內(nèi)置函數(shù)Python提供了許多內(nèi)置函數(shù),可以直接在代碼中使用,無需導入任何模塊。這些函數(shù)涉及數(shù)據(jù)類型轉(zhuǎn)換、數(shù)學運算、序列操作等。示例:print(len([1,2,3]))輸出:3,len()函數(shù)計算序列長度print(type(123))輸出:<class'int'>,type()函數(shù)返回對象的類型3.3模塊與包的使用模塊是包含Python定義和語句的文件。一個模塊可以被另一個Python程序?qū)?,從而使用其功能。包是包含多個模塊的文件夾或目錄。3.3.1導入模塊使用import語句可以導入整個模塊,或者模塊中的特定元素。示例:importmath導入整個math模塊result=math.sqrt(16)使用math模塊的sqrt函數(shù)frommathimportsqrt從math模塊導入特定函數(shù)result=sqrt(16)3.3.2使用包包是由多個模塊組成的集合,通常用于按層次組織代碼。要導入包中的模塊,需要指定包名和模塊名。示例:importmypackage.mymodule導入名為mypackage的包中的mymodule模塊frommypackageimportmymodule另一種導入方式3.3.3創(chuàng)建模塊和包創(chuàng)建模塊只需將相關(guān)的Python代碼保存在文件中,后綴名為.py。創(chuàng)建包需要創(chuàng)建一個文件夾,并在該文件夾中包含一個特殊的文件__init__.py,以標識該目錄為Python包。示例目錄結(jié)構(gòu):my_package/__init__.pymy_module.py在my_module.py文件中定義函數(shù),然后在其他Python文件中導入和使用它們。第4章列表、元組與字典4.1列表操作列表是Python中最常用的數(shù)據(jù)結(jié)構(gòu)之一,它是一種有序的集合,可以包含任意類型的元素。以下為列表的基本操作:4.1.1創(chuàng)建列表創(chuàng)建列表可以通過將元素放在方括號內(nèi),元素之間用逗號分隔。創(chuàng)建一個包含整數(shù)、字符串和浮點數(shù)的列表my_list=[1,'hello',3.14]4.1.2訪問列表元素可以通過索引訪問列表中的元素,索引從0開始。訪問列表中的第一個元素first_element=my_list[0]4.1.3修改列表元素可以通過索引來修改列表中的元素。修改列表中的第一個元素my_list[0]=1004.1.4添加元素可以使用append()、insert()和extend()方法向列表中添加元素。使用append()在列表末尾添加元素my_list.append(200)使用insert()在指定位置插入元素my_list.insert(1,'world')使用extend()將另一個列表中的元素添加到當前列表my_list.extend([300,400])4.1.5刪除元素可以使用del、remove()和pop()方法刪除列表中的元素。使用del刪除指定位置的元素delmy_list[0]使用remove()刪除指定的元素值my_list.remove('world')使用pop()刪除并返回指定位置的元素popped_element=my_list.pop(1)4.1.6列表切片可以使用切片操作獲取列表的子集。獲取列表的部分元素my_slice=my_list[1:3]4.1.7列表遍歷可以使用for循環(huán)遍歷列表中的所有元素。forelementinmy_list:print(element)4.2元組操作元組(tuple)是一種不可變的序列類型,與列表類似,但元組一旦創(chuàng)建,其內(nèi)部元素不能修改。4.2.1創(chuàng)建元組創(chuàng)建元組使用圓括號(),元素之間用逗號分隔。my_tuple=(1,'hello',3.14)4.2.2訪問元組元素與列表類似,通過索引訪問元組中的元素。first_element=my_tuple[0]4.2.3元組切片元組同樣支持切片操作。my_slice=my_tuple[1:3]4.2.4遍歷元組可以使用for循環(huán)遍歷元組中的所有元素。forelementinmy_tuple:print(element)4.3字典操作字典是一種映射類型,包含鍵值對的無序集合。4.3.1創(chuàng)建字典使用花括號{}創(chuàng)建字典,每個鍵值對之間用逗號分隔。my_dict={'name':'Alice','age':25,'e':'aliceexample.'}4.3.2訪問字典元素通過鍵來訪問字典中的值。name=my_dict['name']4.3.3添加和修改字典元素可以通過直接賦值來添加或修改鍵值對。添加新鍵值對my_dict['location']='NewYork'修改已存在的鍵值對my_dict['age']=264.3.4刪除字典元素使用del關(guān)鍵字或pop()方法刪除鍵值對。使用del刪除鍵值對delmy_dict['location']使用pop()刪除鍵值對并返回值age=my_dict.pop('age')4.3.5字典鍵值遍歷可以使用for循環(huán)遍歷字典的鍵或鍵值對。遍歷字典中的所有鍵forkeyinmy_dict:print(key)遍歷字典中的所有鍵值對forkey,valueinmy_dict.items():print(key,value)第5章字符串與正則表達式5.1字符串操作字符串是Python編程中非常常見的數(shù)據(jù)類型,它包含一系列字符。Python提供了豐富的字符串操作方法,使得字符串處理變得靈活且高效。5.1.1字符串連接與重復在Python中,可以使用加號()對字符串進行連接,使用星號()對字符串進行重復。示例:str1="Hello"str2="World"str3=str1""str2連接字符串print(str3)str4="Python"str5=str43重復字符串print(str5)5.1.2字符串切片字符串切片允許我們獲取字符串的子串。使用切片操作時,可以通過起始索引和結(jié)束索引來指定子串的位置。示例:str6="HelloWorld"sub_str=str6[0:5]獲取索引0到4的字符print(sub_str)5.1.3字符串方法Python提供了許多字符串方法,例如:upper()、lower()、strip()等,用于對字符串進行格式化、查找和替換等操作。示例:str7="HelloWorld"formatted_str=str(7)strip()去除首尾空格print(formatted_str)str8="Python"upper_str=str(8)upper()轉(zhuǎn)換為大寫print(upper_str)5.2正則表達式基礎(chǔ)正則表達式(RegularExpression)是用于處理字符串的強大工具,它通過定義一個規(guī)則來匹配具有特定模式的字符串。5.2.1正則表達式符號正則表達式包含一系列特殊符號,如:`.`:匹配除換行符之外的任意單個字符。``:匹配前面的子表達式零次或多次。``:匹配前面的子表達式一次或多次。`?`:匹配前面的子表達式零次或一次。`{m,n}`:匹配前面的子表達式至少m次,最多n次。5.2.2元字符正則表達式中的元字符包括:`^`:匹配輸入字符串的開始位置。`$`:匹配輸入字符串的結(jié)束位置。``:匹配方括號內(nèi)的任意一個字符(字符集)。`[^]`:匹配不在方括號內(nèi)的任意一個字符。5.2.3正則表達式函數(shù)Python中的`re`模塊提供了正則表達式的相關(guān)函數(shù),如:search()、match()、findall()等。示例:importrepattern="abc"string="abcdefabcdef"result=re.search(pattern,string)搜索匹配的子串print(result.group())輸出匹配的子串5.3正則表達式應(yīng)用正則表達式廣泛應(yīng)用于字符串搜索、替換、驗證等領(lǐng)域。以下是一些實際應(yīng)用示例。5.3.1驗證郵箱地址importree_pattern=r"\w\w\.\w"e="exampleexample."ifre.match(e_pattern,e):print("有效的郵箱地址")else:print("無效的郵箱地址")5.3.2提取URLimportre_pattern=r"://[^\s]"text="這是一個URL:://example.,請注意識別。"s=re.findall(_pattern,text)print(s)通過本章的學習,讀者應(yīng)該掌握了字符串的基本操作和正則表達式的使用方法,為后續(xù)編程實踐打下堅實基礎(chǔ)。第6章文件與輸入輸出6.1文件操作在Python編程中,文件操作是進行數(shù)據(jù)持久化存儲的重要手段。本章將介紹如何使用Python進行基本的文件操作,包括打開、讀取、寫入和關(guān)閉文件。6.1.1打開文件使用內(nèi)置函數(shù)`open()`可以打開一個文件,該函數(shù)的基本語法如下:file_object=open(file_name,mode)其中,`file_name`是文件的路徑及名稱,`mode`是文件打開模式,如只讀模式('r')、只寫模式('w')、追加模式('a')等。6.1.2讀取文件文件讀取可以通過以下幾種方式:讀取整個文件:使用`read()`方法讀取整個文件內(nèi)容。逐行讀?。菏褂胉readline()`逐行讀取或者使用`readlines()`讀取所有行到一個列表中。示例:讀取整個文件withopen('example.txt','r')asfile:content=file.read()print(content)逐行讀取withopen('example.txt','r')asfile:forlineinfile:print(line.strip())使用strip()去除行尾的換行符6.1.3寫入文件寫入文件與讀取文件類似,需要將文件打開模式設(shè)置為'w'(覆蓋寫入)或'a'(追加寫入)。示例:寫入文件withopen('example.txt','w')asfile:file.write('Hello,world!')6.1.4關(guān)閉文件使用`open()`函數(shù)打開的文件,在操作完成后應(yīng)該使用`close()`方法關(guān)閉,以釋放系統(tǒng)資源。在實際編程中,推薦使用`with`語句進行文件操作,它可以自動管理文件的打開和關(guān)閉。6.2輸入輸出方法Python提供了多種方法進行輸入和輸出,其中最常用的是內(nèi)置函數(shù)`print()`和`input()`。6.2.1print()函數(shù)`print()`函數(shù)用于輸出信息到控制臺,其基本語法如下:print(value,,sep='',end='\n',file=sys.stdout,flush=False)`value`是要輸出的值。`sep`用于分隔多個值,默認為空格。`end`用于定義輸出結(jié)束后添加的字符,默認為換行符`\n`。6.2.2input()函數(shù)`input()`函數(shù)用于獲取用戶從鍵盤輸入的信息,其基本語法如下:input([prompt])`prompt`是一個字符串,會在等待用戶輸入前顯示在控制臺上。示例:獲取用戶輸入name=input('Enteryourname:')print('Hello,'name)6.3序列化與反序列化序列化是指將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程。在Python中,常用的序列化方式是使用`pickle`模塊。6.3.1使用pickle序列化`pickle`可以將Python對象轉(zhuǎn)換為字節(jié)流,其過程稱為序列化。序列化后的數(shù)據(jù)可以保存到文件或通過網(wǎng)絡(luò)傳輸。示例:importpickle定義一個要序列化的對象data={'key1':'value1','key2':'value2'}序列化過程withopen('data.pkl','wb')asfile:pickle.dump(data,file)6.3.2使用pickle反序列化反序列化是指將已序列化的數(shù)據(jù)恢復成原始對象的過程。示例:importpickle反序列化過程withopen('data.pkl','rb')asfile:data=pickle.load(file)print(data)通過序列化和反序列化,Python程序可以方便地保存和恢復復雜的數(shù)據(jù)結(jié)構(gòu)。第7章面向?qū)ο缶幊?.1類與對象面向?qū)ο缶幊蹋∣bjectOrientedProgramming,OOP)是Python中一種非常重要的編程范式。它將現(xiàn)實世界中的事物抽象為程序中的對象,每個對象都可以具有屬性(數(shù)據(jù))和方法(行為)。類是創(chuàng)建對象的模板,定義了對象的基本結(jié)構(gòu)和行為。7.1.1類的定義類定義使用關(guān)鍵字class,其后緊跟類名,通常類名采用駝峰命名法。類體由類成員(屬性和方法)組成。classClassName:類屬性class_attribute=value構(gòu)造函數(shù)def__init__(self,parameter_list):實例屬性self.instance_attribute=value類方法defmethod(self,parameter_list):方法體pass7.1.2對象的創(chuàng)建與使用通過類名和括號創(chuàng)建對象實例,可以向構(gòu)造函數(shù)傳遞初始化參數(shù)。創(chuàng)建對象obj=ClassName(parameter_values)調(diào)用方法obj.method(parameter_values)7.2繼承與多態(tài)繼承是面向?qū)ο缶幊痰暮诵母拍钪?,允許我們定義一個類(子類)來繼承另一個類(父類)的屬性和方法。7.2.1繼承在Python中,所有的類都直接或間接繼承自內(nèi)置的基類object。繼承通過在類定義中使用括號內(nèi)的父類名來指定。classParentClass:passclassChildClass(ParentClass):pass7.2.2多態(tài)多態(tài)性是指允許不同類的對象對同一消息做出響應(yīng)的特性。在Python中,多態(tài)通過方法重寫實現(xiàn)。classAnimal:defspeak(self):passclassDog(Animal):defspeak(self):return"Bark"classCat(Animal):defspeak(self):return"Meow"7.3封裝與解耦封裝是指隱藏一個對象的內(nèi)部細節(jié),僅對外暴露需要公開的接口。解耦是指減少對象之間的依賴關(guān)系,提高代碼的模塊化和可維護性。7.3.1私有屬性與方法在Python中,可以通過在屬性或方法名前添加兩個下劃線來定義私有屬性或方法。classMyClass:def__init__(self):self.__private_attribute=valuedef__private_method(self):pass7.3.2使用property裝飾器property裝飾器允許我們定義屬性訪問的“讀”、“寫”、“刪除”操作。classMyClass:def__init__(self):self.__attribute=valuepropertydefattribute(self):returnself.__attributeattribute.setterdefattribute(self,value):self.__attribute=valueattribute.deleterdefattribute(self):delself.__attribute通過本章的學習,我們了解了Python面向?qū)ο缶幊痰幕A(chǔ)知識,包括類與對象、繼承與多態(tài)、封裝與解耦等核心概念,為編寫模塊化、可復用的代碼打下了基礎(chǔ)。第8章異常處理與斷言8.1異常處理在Python編程中,異常處理是一種重要的錯誤管理機制。它能夠保證程序在遇到錯誤時能夠優(yōu)雅地處理,而不是直接崩潰。本節(jié)將介紹如何使用tryexcept語句來處理異常。8.1.1tryexcept語句tryexcept語句的基本結(jié)構(gòu)如下:try:嘗試執(zhí)行的代碼塊exceptSomeException:當發(fā)生SomeException異常時執(zhí)行的代碼塊如果try代碼塊中的代碼引發(fā)了異常,程序會立即跳轉(zhuǎn)到對應(yīng)的except代碼塊執(zhí)行。8.1.2多個except子句一個try語句可以跟隨多個except子句,以便分別處理不同類型的異常:try:嘗試執(zhí)行的代碼塊exceptValueError:處理ValueError類型的異常except(TypeError,ZeroDivisionError):處理TypeError和ZeroDivisionError類型的異常8.1.3捕獲所有異常為了捕獲所有類型的異常,可以使用一個不帶異常類型的except子句:try:嘗試執(zhí)行的代碼塊except:處理所有異常但是這種做法通常不推薦,因為它可能會隱藏程序中未預料的錯誤。8.1.4else子句當tryexcept語句中沒有異常發(fā)生時,可以使用else子句來執(zhí)行一些代碼:try:嘗試執(zhí)行的代碼塊exceptSomeException:處理異常的代碼塊else:如果沒有異常發(fā)生,則執(zhí)行這里的代碼8.1.5finally子句無論是否發(fā)生異常,finally子句中的代碼都會被執(zhí)行:try:嘗試執(zhí)行的代碼塊exceptSomeException:處理異常的代碼塊finally:總是會執(zhí)行的代碼塊這對于清理資源(如關(guān)閉文件)非常有用。8.2自定義異常Python允許通過繼承Exception類來創(chuàng)建自定義異常。自定義異??梢蕴峁└迂S富的錯誤信息和更清晰的錯誤處理邏輯。8.2.1定義自定義異常以下是一個自定義異常的例子:classCustomException(Exception):def__init__(self,message):self.message=message8.2.2觸發(fā)自定義異常使用raise語句可以觸發(fā)異常:defmy_function(value):ifvalue<0:raiseCustomException("Valueshouldbepositive")8.3斷言的使用斷言(assert)用于在程序中設(shè)置檢查點,保證某些條件必須為真,否則程序?qū)伋鯝ssertionError異常。8.3.1基本斷言斷言的基本語法如下:assertcondition,message如果condition為真,程序繼續(xù)執(zhí)行;如果為假,將拋出一個AssertionError異常,并顯示message。8.3.2斷言的使用場景斷言通常用于確認代碼的假設(shè)條件,保證內(nèi)部邏輯的一致性。它們不應(yīng)該用于處理用戶輸入或其他外部因素導致的錯誤。斷言可以在開發(fā)過程中幫助快速發(fā)覺錯誤,但默認情況下在Python解釋器以優(yōu)化模式運行時,斷言會被忽略。第9章多線程與多進程9.1線程與進程概述在現(xiàn)代計算機編程中,為了充分利用硬件資源,提高程序的執(zhí)行效率,經(jīng)常會涉及到并發(fā)編程。在Python中,多線程和多進程是實現(xiàn)并發(fā)編程的兩種主要方式。在這一章中,我們將深入探討這兩種技術(shù)。線程是操作系統(tǒng)能夠進行運算調(diào)度的最小單位,被包含在進程之中,是進程中的實際運作單位。每個線程都擁有獨立的棧和程序計數(shù)器,但線
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級語文工作計劃
- 勞動力計劃及人員配備
- 2024-2025年中國化肥電商行業(yè)市場前景預測及投資戰(zhàn)略研究報告
- 大班班級工作計劃
- 幼兒園中班班級教育教案模板
- 個人自我介紹集錦15篇
- 市場人員年度工作總結(jié)十篇
- 《傅雷家書》讀書筆記
- 個人原因離職申請書11篇
- 后備干部培養(yǎng)參考計劃范文
- 廣西壯族自治區(qū)桂林市2023-2024學年七年級上學期1月期末英語試題
- 小兒肺炎支氣管鏡護理查房課件
- 2024年中國電信山東分公司招聘筆試參考題庫含答案解析
- Part 6 Unit 8 Green Earth 教案-【中職專用】高一英語精研課堂(高教版2021·基礎(chǔ)模塊2)
- 2023年江蘇省普通高中學業(yè)水平信息技術(shù)模擬試卷
- 工廠日常管理的責任分配
- 小學科學實驗圖片大全
- 體育教研室教學大綱-身體運動功能訓練
- 黑龍江北大荒農(nóng)墾集團總公司組織架構(gòu)圖
- 艾森克人格問卷(EPQ)(成人)
- YY/T 0698.5-2023最終滅菌醫(yī)療器械包裝材料第5部分:透氣材料與塑料膜組成的可密封組合袋和卷材要求和試驗方法
評論
0/150
提交評論