Python醫(yī)學(xué)數(shù)據(jù)分析(微課版) 課件 第1-5章 醫(yī)學(xué)數(shù)據(jù)分析及Python安裝 -使用Pandas進(jìn)行數(shù)據(jù)預(yù)處理及統(tǒng)計(jì)分析_第1頁(yè)
Python醫(yī)學(xué)數(shù)據(jù)分析(微課版) 課件 第1-5章 醫(yī)學(xué)數(shù)據(jù)分析及Python安裝 -使用Pandas進(jìn)行數(shù)據(jù)預(yù)處理及統(tǒng)計(jì)分析_第2頁(yè)
Python醫(yī)學(xué)數(shù)據(jù)分析(微課版) 課件 第1-5章 醫(yī)學(xué)數(shù)據(jù)分析及Python安裝 -使用Pandas進(jìn)行數(shù)據(jù)預(yù)處理及統(tǒng)計(jì)分析_第3頁(yè)
Python醫(yī)學(xué)數(shù)據(jù)分析(微課版) 課件 第1-5章 醫(yī)學(xué)數(shù)據(jù)分析及Python安裝 -使用Pandas進(jìn)行數(shù)據(jù)預(yù)處理及統(tǒng)計(jì)分析_第4頁(yè)
Python醫(yī)學(xué)數(shù)據(jù)分析(微課版) 課件 第1-5章 醫(yī)學(xué)數(shù)據(jù)分析及Python安裝 -使用Pandas進(jìn)行數(shù)據(jù)預(yù)處理及統(tǒng)計(jì)分析_第5頁(yè)
已閱讀5頁(yè),還剩273頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Python醫(yī)學(xué)數(shù)據(jù)分析(微課版)》第一章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝PythonMedicaldataanalysis搭建Python開(kāi)發(fā)環(huán)境醫(yī)學(xué)數(shù)據(jù)分析概述Python庫(kù)1.11.2內(nèi)容導(dǎo)航CONTENTS1.31.1.1醫(yī)學(xué)數(shù)據(jù)的特點(diǎn)醫(yī)學(xué)數(shù)據(jù)是指與醫(yī)學(xué)領(lǐng)域相關(guān)的信息集合,是醫(yī)療健康領(lǐng)域中的重要資源。醫(yī)學(xué)數(shù)據(jù)來(lái)源廣泛,具有數(shù)據(jù)量大、格式和內(nèi)容復(fù)雜多樣、時(shí)序性強(qiáng)、隱私性高等特點(diǎn),并具有極高的研究?jī)r(jià)值。醫(yī)學(xué)數(shù)據(jù)是科學(xué)研究的重要依據(jù),了解醫(yī)學(xué)數(shù)據(jù)的特征可以更好的收集、整理和分析數(shù)據(jù),從而確保醫(yī)學(xué)數(shù)據(jù)分析的準(zhǔn)確性和可靠性,這對(duì)醫(yī)學(xué)研究至關(guān)重要。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝1.1.2常用數(shù)據(jù)分析工具01OPTION02OPTION03OPTION04OPTION編程語(yǔ)言(Python、R語(yǔ)言等)統(tǒng)計(jì)軟件(SAS、SPSS、Stata、MATLAB等)可視化工具(圖表、數(shù)據(jù)可視化工具等)其他(Excel、數(shù)據(jù)庫(kù)等)數(shù)據(jù)分析是現(xiàn)代數(shù)據(jù)驅(qū)動(dòng)決策的重要環(huán)節(jié),選擇合適的數(shù)據(jù)分析工具能夠大幅提高分析效率和效果。常用的數(shù)據(jù)分析工具種類(lèi)繁多,各自具有不同的特點(diǎn)和優(yōu)勢(shì),適用于不同的數(shù)據(jù)分析場(chǎng)景和需求。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝1.1.3醫(yī)學(xué)數(shù)據(jù)分析的基本流程01OPTION02OPTION03OPTION04OPTION數(shù)據(jù)收集數(shù)據(jù)清洗數(shù)據(jù)整合數(shù)據(jù)分析05OPTION06OPTION結(jié)果解釋報(bào)告撰寫(xiě)需要注意的是,醫(yī)學(xué)數(shù)據(jù)分析的流程并不是線(xiàn)性的,而是一個(gè)迭代的過(guò)程。例如,數(shù)據(jù)探索可能會(huì)發(fā)現(xiàn)需要進(jìn)一步清洗的數(shù)據(jù),或者結(jié)果解釋可能會(huì)發(fā)現(xiàn)需要改進(jìn)的模型。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝搭建Python開(kāi)發(fā)環(huán)境醫(yī)學(xué)數(shù)據(jù)分析概述Python庫(kù)1.11.2內(nèi)容導(dǎo)航CONTENTS1.31.2.1

Python開(kāi)發(fā)環(huán)境安裝在開(kāi)始Python編程之前,首先需要配置好Python的開(kāi)發(fā)環(huán)境。本節(jié)將指導(dǎo)您完成兩個(gè)核心步驟:一是安裝Python解釋器,這是運(yùn)行代碼的基礎(chǔ);二是選擇并配置一款合適的開(kāi)發(fā)工具,它們能提供代碼高亮、自動(dòng)補(bǔ)全等功能,從而有效提升編程效率。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝Python的下載訪(fǎng)問(wèn)Python官方網(wǎng)站(/),如右圖。在官網(wǎng)首頁(yè)的“Downloads”菜單中,可以看到最新版本的下載鏈接,默認(rèn)為Windows版本;也可在Downloads的下載頁(yè)面中選擇不同版本的Python。Python官網(wǎng)第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝Python的安裝勾選安裝啟動(dòng)界面下面的“Useadminprivilegeswheninstallingpy.exe”和“AddPython.exetoPATH”兩個(gè)復(fù)選框;Python有兩種安裝方式可以選擇:默認(rèn)安裝和自定義安裝;自定義安裝:點(diǎn)擊“Customizeinstallation”進(jìn)入高級(jí)選項(xiàng)對(duì)話(huà)框,可以選擇高級(jí)安裝選項(xiàng)并選擇指定安裝位置。Python安裝啟動(dòng)界面第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝1.2.2Anaconda集成開(kāi)發(fā)環(huán)境Anaconda是一個(gè)第三方的集成Python開(kāi)發(fā)環(huán)境,可在Windows、Linux、macOS等多個(gè)操作系統(tǒng)中使用;它不僅包含了Python本身,還預(yù)裝了大量常用的科學(xué)計(jì)算和數(shù)據(jù)分析庫(kù),使多個(gè)第三方開(kāi)發(fā)環(huán)境集成到一起。適合初學(xué)者和需要快速搭建開(kāi)發(fā)環(huán)境的研究人員。Anaconda集成開(kāi)發(fā)環(huán)境官方下載網(wǎng)站Anaconda的官方下載網(wǎng)站為/,該軟件分為商業(yè)版和社區(qū)版兩種,普通用戶(hù)可以免費(fèi)使用社區(qū)版。國(guó)內(nèi)的下載官網(wǎng)常用的是清華大學(xué)開(kāi)源軟件鏡像網(wǎng)站,網(wǎng)址為/anaconda/archive/。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝1.2.3Python程序的運(yùn)行Python程序的運(yùn)行有兩種方式,分別為交互式命令行模式窗口和IDLEShell模式窗口;在Windows“開(kāi)始”菜單欄中選擇“所有應(yīng)用”,并點(diǎn)擊Python3.11文件中的Python命令,進(jìn)入交互式命令模式窗口,該窗口中,一行只能運(yùn)行一條Python語(yǔ)句;而Python3.11文件中的IDLEShell模式窗口,既可以在命令行交互模式中運(yùn)行代碼,也可以新建一個(gè)Python文件,批量運(yùn)行代碼。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝搭建Python開(kāi)發(fā)環(huán)境醫(yī)學(xué)數(shù)據(jù)分析概述Python庫(kù)1.11.2內(nèi)容導(dǎo)航CONTENTS1.31.3.1Python標(biāo)準(zhǔn)庫(kù)Python標(biāo)準(zhǔn)庫(kù)是Python編程語(yǔ)言自帶的一組模塊和包,它們提供了許多常用的功能和工具,可以幫助開(kāi)發(fā)人員更輕松地完成各種任務(wù)。Python標(biāo)準(zhǔn)庫(kù)涵蓋了廣泛的領(lǐng)域,包括文件操作、網(wǎng)絡(luò)編程、數(shù)據(jù)處理、圖形界面等。本節(jié)將將以“math”庫(kù)為例,介紹如何查看已安裝的庫(kù)、如何引用庫(kù)、給庫(kù)起別名、導(dǎo)入庫(kù)中所有函數(shù)以及為導(dǎo)入的函數(shù)起別名。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝1.3.2Python第三方庫(kù)除了Python標(biāo)準(zhǔn)庫(kù)外,還有許多第三方庫(kù)可以幫助開(kāi)發(fā)人員擴(kuò)展Python的功能,實(shí)現(xiàn)更復(fù)雜和豐富的應(yīng)用。這些第三方庫(kù)通常由社區(qū)開(kāi)發(fā)和維護(hù),提供了各種各樣的功能模塊,涵蓋了數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、Web開(kāi)發(fā)等領(lǐng)域。第三方庫(kù)的導(dǎo)入第三庫(kù)必須單獨(dú)安裝后導(dǎo)入才能夠使用,這將會(huì)用到pip工具安裝,即在Windows命令行提示符的窗口下,可通過(guò)pipinstall命令來(lái)使Python安裝引擎自動(dòng)搜索并安裝第三方庫(kù)。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝1.安裝第三方庫(kù)的具體操作以“jieba”庫(kù)為例第一步,在Windows搜索框輸入“cmd”或“命令提示符”;第二步,右擊“命令提示符”,選擇“以管理員身份運(yùn)行”選項(xiàng),打開(kāi)命令提示符窗口;第三步,輸入“pipinstall庫(kù)名”命令即可。例如在命題提示符窗口中輸入pipinstalljieba,按Enter鍵后,系統(tǒng)即可自動(dòng)下載并安裝;安裝結(jié)束會(huì)顯示“Successfullyinstalledjieba-0.42.1”,即安裝成功,如右圖所示。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝2.特殊情況的處理需要注意的是,可能在安裝的過(guò)程中會(huì)出現(xiàn)以下情況,如下圖所示這種情況的出現(xiàn)說(shuō)明已有NumPy存在于d:\anaconda\lib\sit-packages(1.26.4)路徑中,但我們?cè)贗DLE中運(yùn)行python文件時(shí)還缺少NumPy庫(kù)。所以我們需要將NumPy庫(kù)安裝在IDLE對(duì)應(yīng)的路徑下,才能正常運(yùn)行該python文件;則需在cmd中使用“pipinstall--target=目標(biāo)路徑工具包名字”格式的命令去安裝所需要的庫(kù)即可,例如:”pipinstall–target=d:/python/lib/site-packagesnumpy”安裝結(jié)束會(huì)顯示SuccessfullyinstalledNumPy,即安裝成功。成功安裝后,即可在IDLE中運(yùn)行NumPy的代碼,即可正常運(yùn)行。第1章醫(yī)學(xué)數(shù)據(jù)分析及Python安裝THANKS《Python醫(yī)學(xué)數(shù)據(jù)分析(微課版)》第二章Python基礎(chǔ)

PythonMedicalDataAnalysisPython編碼規(guī)范2.1Python內(nèi)置數(shù)據(jù)類(lèi)型2.2內(nèi)容導(dǎo)航CONTENTSPython運(yùn)算符和表達(dá)式2.3Python流程控制2.4Python函數(shù)2.52.1Python編碼規(guī)范縮進(jìn)實(shí)現(xiàn)方法:Tab鍵、多個(gè)空格(通常使用4個(gè)空格)Tab鍵和空格不能混用同一級(jí)別的代碼塊的縮進(jìn)必須相同代碼行長(zhǎng)度:每行代碼通常不超過(guò)79個(gè)字符在注釋或文檔字符串中,每行的最大字符數(shù)為72個(gè)字符2.1.1代碼布局與縮進(jìn)2.1.2注釋注釋有利于程序理解和團(tuán)隊(duì)合作開(kāi)發(fā)。據(jù)統(tǒng)計(jì),一個(gè)可維護(hù)性和可讀性都很強(qiáng)的程序一般會(huì)包含30%以上的注釋。常用的注釋方式:①以符號(hào)#開(kāi)始,之后的內(nèi)容為注釋?zhuān)粫?huì)被當(dāng)做代碼解釋和執(zhí)行②包含在一對(duì)三引號(hào)('''…''')或("""…""")之間,且不屬于任何語(yǔ)句的內(nèi)容為注釋2.1.3命名規(guī)則可以使用漢字、大小寫(xiě)字母、數(shù)字和下劃線(xiàn)Python命名區(qū)分大小寫(xiě)不能以數(shù)字開(kāi)頭,不建議采用非英文字符對(duì)變量命名避免使用Python的關(guān)鍵字變量01通常使用首字母大寫(xiě)的駝峰式命名方法,例如StudName避免使用Python內(nèi)建的類(lèi)型名稱(chēng)類(lèi)03建議使用小寫(xiě)字母和下劃線(xiàn),單詞之間使用下劃線(xiàn)分隔可以提高可讀性避免使用Python內(nèi)置的函數(shù)名稱(chēng)函數(shù)02包和模塊名均應(yīng)該短、所有的字母小寫(xiě)模塊名可以使用下劃線(xiàn)來(lái)提高可讀性,例如my_module包名不建議使用下劃線(xiàn)包、模塊04Python編碼規(guī)范2.1Python內(nèi)置數(shù)據(jù)類(lèi)型2.2內(nèi)容導(dǎo)航CONTENTSPython運(yùn)算符和表達(dá)式2.3Python流程控制2.4Python函數(shù)2.52.2Python內(nèi)置數(shù)據(jù)類(lèi)型1.整數(shù)定義:整數(shù)(Integers)是沒(méi)有小數(shù)部分的數(shù)字類(lèi)型:十進(jìn)制整數(shù)由0、1、2、3、4、5、6、7、8、9十個(gè)基本數(shù)字組成

如0、-1、9、1232.2.1整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)十六進(jìn)制整數(shù)以“0x”或“0X”為開(kāi)頭,后面使用0-9和A-F(或a-f)來(lái)表示整數(shù),其中A-F代表10-15

如0xA3F表示十進(jìn)制的2623(即10×162+3×161+15×160)八進(jìn)制整數(shù)以數(shù)字0o開(kāi)頭,后面使用0-7來(lái)表示整數(shù)

如0o123表示十進(jìn)制的83(即1×82+2×81+3×80)二進(jìn)制整數(shù)使用0和1來(lái)表示整數(shù)

如二進(jìn)制數(shù)1010表示十進(jìn)制的10(即1×23+0×22+1×21+0×20)例2-1:使用Python進(jìn)行加法數(shù)學(xué)運(yùn)算整數(shù)的數(shù)學(xué)運(yùn)算Python的整數(shù)類(lèi)型支持標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算,如加法、減法、乘法、除法和取模等x=10

#定義一個(gè)變量x,賦值10y=20 #定義一個(gè)變量y,賦值20#進(jìn)行數(shù)學(xué)運(yùn)算sum=x+y #定義一個(gè)變量sum,將變量x和變量y的加法運(yùn)算結(jié)果賦值給sumprint(sum) #輸出變量sum的值,輸出結(jié)果為30整數(shù)的類(lèi)型轉(zhuǎn)換方法可以使用int()函數(shù)將其他數(shù)值數(shù)據(jù)類(lèi)型轉(zhuǎn)換為整數(shù)類(lèi)型但是在轉(zhuǎn)換過(guò)程中可能會(huì)丟失精度,從而引發(fā)異?;蚪?cái)嗬?-2:使用int()函數(shù)將其他數(shù)值數(shù)據(jù)類(lèi)型轉(zhuǎn)換為整數(shù)類(lèi)型a=4 #定義一個(gè)變量a,賦值4b=3 #定義一個(gè)變量b,賦值3print(int(a/b))

#將a除b的值轉(zhuǎn)換為整數(shù)類(lèi)型并輸出,輸出結(jié)果為12.浮點(diǎn)數(shù)定義:浮點(diǎn)數(shù)(Floating-pointnumbers)是有小數(shù)部分的數(shù)字。例如1.2、3.14159、-2.718、1.23e4、6.022e23、-9.81e-3類(lèi)型轉(zhuǎn)換方法:可以通過(guò)float()函數(shù)將整數(shù)或字符串轉(zhuǎn)換為浮點(diǎn)數(shù)3.復(fù)數(shù)復(fù)數(shù)由實(shí)部和虛部組成,形式為a+bj,其中a是實(shí)部,b是虛部,j是虛數(shù)單位。類(lèi)型轉(zhuǎn)換方法:可以通過(guò)complex()函數(shù)創(chuàng)建復(fù)數(shù)使用real和imag屬性訪(fǎng)問(wèn)復(fù)數(shù)的實(shí)部和虛部例2-3:使用real和imag屬性訪(fǎng)問(wèn)復(fù)數(shù)a=2+3j的實(shí)部和虛部a=2+3ja.real#查看復(fù)數(shù)實(shí)部,輸出結(jié)果為2.0a.imag

#查看復(fù)數(shù)虛部,輸出結(jié)果為3.02.2.2列表、元組、字典、集合列表(list)的所有元素放在一對(duì)方括號(hào)“[]”

中,相鄰元素之間使用逗號(hào)“,”分隔開(kāi)列表的元素不需要具有相同的類(lèi)型,列表中的元素可以是任意類(lèi)型,包括數(shù)字、字符串、其他列表等。例如:my_list=[1,'apple',3.14,True,[10,20]]列表是可變的,可以添加、刪除或修改列表中的元素1.列表列表中常見(jiàn)的函數(shù)函數(shù)說(shuō)明list.append(x)將元素x追加“到列表list尾部list.extend(L)將列表L中的所有元素追加“到列表list尾部形成新列表list.insert(i,x)在list列表中索引為i的位置插入x元素list.remove(x)將列表中第一個(gè)為x的元素移除,若不存在x元素將引發(fā)一個(gè)錯(cuò)誤list.pop(i)刪除index為i的元素,并將刪除的元素顯示,若不指定i則默認(rèn)刪除最后一個(gè)元素list.clear()清空列表listlist.index(x)返回第一個(gè)x元素的位置,若不存在x則報(bào)錯(cuò)list.count(x)統(tǒng)計(jì)列表list中x元素的個(gè)數(shù)list.reverse()將列表反向排列l(wèi)ist.sort()將列表從小到大排序,若需從大到小list.sort(reverse=True)list.copy()返回列表的副本表2-1list常見(jiàn)函數(shù)列表中增加元素的方法append():在列表末尾添加元素insert(index,element):在指定索引處插入元素extend(iterable):將另一個(gè)可迭代對(duì)象的所有元素添加到列表的末尾數(shù)學(xué)運(yùn)算符“+”:將兩個(gè)列表中的元素進(jìn)行合并舉例例2-4:使用函數(shù)list.append()在列表[1,2,3,'py']末尾添加元素'hn'my_list=[1,2,3]my_list.insert(2,'hn')#使用函數(shù)insert()在索引為2的位置插入'hn'print(my_list)#輸出結(jié)果為[1,2,'hn',3]my_list=[1,2,3,'py']my_list.append('hn')#使用函數(shù)append()在列表末尾添加元素'hn'print(my_list)#輸出結(jié)果為[1,2,3,'py','hn']例2-5:使用函數(shù)list.insert()在[1,2,3]列表中索引為2的位置插入'hn'元素舉例例2-6:使用函數(shù)list.extend()將[0,1,3]的所有元素添加到列表[1,2,3,'py']的末尾[1,2,3,'py']+[0,1,3]#輸出結(jié)果為[1,2,3,'py',0,1,3]my_list=[1,2,3,'py']to_add=[0,1,3]#創(chuàng)建一個(gè)要添加的列表my_list.extend(to_add)#使用函數(shù)extend()將to_add列表的所有元素添加到my_list的末尾print(my_list)#輸出結(jié)果為[1,2,3,'py',0,1,3]例2-7:使用數(shù)學(xué)運(yùn)算符“+”將列表[1,2,3,'py']和列表[0,1,3]中的元素進(jìn)行合并列表中刪除元素的方法pop():刪除并返回列表中的最后一個(gè)元素,或者指定索引的元素remove(element):刪除列表中第一次出現(xiàn)的指定元素del:使用del語(yǔ)句刪除指定索引的元素或切片clear():清空列表舉例例2-8:使用函數(shù)list.pop()刪除列表my_list中的默認(rèn)元素和索引位置為2的元素my_list=[1,2,3,4]removed_element=my_list.pop()#使用函數(shù)pop()刪除列表中的默認(rèn)元素print(my_list)#刪除的元素是列表中最后一個(gè)元素4,輸出結(jié)果為[1,2,3]removed_element=my_list.pop(1)#使用函數(shù)pop()刪除列表中索引位置為2的元素print(my_list)#刪除的元素是2,輸出結(jié)果為[1,3]例2-9:使用函數(shù)list.remove()將列表my_list中第一個(gè)為2的元素刪除my_list=[1,2,3,2,4]my_list.remove(2)#使用函數(shù)remove()刪除第一個(gè)2print(my_list)#輸出結(jié)果為[1,3,2,4]舉例例2-10:使用del語(yǔ)句將列表my_list中刪除索引位置為1的元素和切片[1:3]的元素my_list=[1,2,3,4]my_list.clear() #使用函數(shù)clear()將列表清空print(my_list)#輸出結(jié)果為[]my_list=[1,2,3,4,5]delmy_list[1]#刪除索引位置為1的元素print(my_list)#輸出結(jié)果為[1,3,4,5]delmy_list[1:3]#現(xiàn)在my_list是[1,3,4,5],刪除索引1到2(不包括3)的元素print(my_list)

#輸出結(jié)果為[1,5]例2-11:使用函數(shù)list.clear()將列表my_list清空列表中修改元素的方法對(duì)位置上的元素直接賦值即可修改my_list=[1,2,3,4]my_list[1]=10#將列表索引位置為1的元素修改為10print(my_list)#輸出結(jié)果為[1,10,3,4]例2-12:將列表my_list中索引位置為1的元素修改為10列表中查看元素的方法利用切片查看列表中的元素切片是Python中有序序列的重要操作之一,適用于列表、元組、字符串、range對(duì)象等類(lèi)型基本語(yǔ)法是[start:stop:step],其中:start是開(kāi)始索引,默認(rèn)為0;stop是結(jié)束索引,默認(rèn)為列表的長(zhǎng)度;step是步長(zhǎng),默認(rèn)為1[start:stop]是指通過(guò)索引獲取列表中字符,并截取列表中的一部分,遵循左閉右開(kāi)的原則,截取的范圍是[start:stop)alist=[1,2,3,4,5,6,7]#列表中元素1的索引為0alist[:3]#查看索引3往前的所有元素,輸出結(jié)果為[1,2,3]alist[2:5]#截取索引范圍介于[2,5)的元素,輸出結(jié)果為[3,4,5]alist[-1:]#獲取列表的最后一個(gè)元素,或使用alist[-1],輸出結(jié)果為[7]alist[1::2]#從索引1開(kāi)始,每隔一個(gè)元素取一個(gè)元素,輸出結(jié)果為[2,4,6]alist[-3:]#使用負(fù)索引從列表末尾開(kāi)始切片,最后一個(gè)元素的索引為-1,輸出索引-3往后的所有元素,輸出結(jié)果為[5,6,7]alist[::-1] #反轉(zhuǎn)列表,步長(zhǎng)為負(fù)數(shù),從右往左切,輸出結(jié)果為[7,6,5,4,3,2,1]例2-13:利用切片查看列表alist中的元素2.元組元組(tuple)與列表類(lèi)似,都是有序的元素集合。不同之處在于:元組是不可變序列,元組一旦被創(chuàng)建,其內(nèi)容就不能被添加、修改和產(chǎn)出。但是,可以同列表一樣,利用切片查看元組中的元素元組使用小括號(hào)“()”,在括號(hào)中添加元素,并使用逗號(hào)隔開(kāi)。定義一個(gè)元組的方式有兩種。例如:t=(1,2,3)或y=1,2,3如果要?jiǎng)?chuàng)建只包含一個(gè)元素的元組,還需要在元組后面加一個(gè)逗號(hào)“,”,創(chuàng)建包含多個(gè)元素的元組沒(méi)有這個(gè)限制。例如:

a=42,#有逗號(hào)時(shí)可以沒(méi)有括號(hào)在Python中,如果多個(gè)變量用半角逗號(hào)隔開(kāi),則默認(rèn)將多個(gè)變量按元組的形式組織起來(lái)。兩個(gè)變量在元組中可以相互交換值舉例例2-14:查看元組c中切片[2:6]的元素x,y=1,2x#輸出結(jié)果為1x,y=y,x#將元組x,y兩個(gè)變量相互交換值x#此時(shí)x值為2,輸出結(jié)果為2c=(1,2,3,4,5,6,7,8,9,10)c[2:6]#截取索引范圍介于[2,6)的元素,輸出結(jié)果為(3,4,5,6)例2-15:將元組的兩個(gè)變量相互交換值元組常用函數(shù)tuple.count(x)統(tǒng)計(jì)x在tuple中出現(xiàn)的次數(shù)tuple.index(x)查找第一個(gè)x元素的位置t=1,1,1,1,2,2,3,1,1,1t#輸出結(jié)果為(1,1,1,1,2,2,3,1,1,1)t.count(1)#統(tǒng)計(jì)1在元組t中出現(xiàn)的次數(shù),輸出結(jié)果為7t.index(2)#查找元組t中第一個(gè)等于2的索引位置,輸出結(jié)果為4例2-16:使用函數(shù)tuple.count()統(tǒng)計(jì)1在元組t中出現(xiàn)的次數(shù),使用函數(shù)tuple.index()查找第一個(gè)2的索引位置3.字典字典(dictionary)是包含若干“鍵:值”對(duì)的無(wú)需可變序列。定義字典時(shí),每個(gè)元素的“鍵”和“值”用冒號(hào)分割,相鄰元素之間用逗號(hào)分割,所有的元素都放在一對(duì)大括號(hào)“{}”中字典中的“鍵”是不可變數(shù)據(jù),例如,整數(shù)、浮點(diǎn)數(shù)、字符串、元組等,但列表、集合、字典或包含列表、集合、字典的元組均不能作為字典的“鍵”鍵必須是唯一的,而值可重復(fù)。例如:a_dic={'語(yǔ)文':85,'數(shù)學(xué)':90,'英語(yǔ)':80}字典是可變的,可以添加、刪除或修改字典中的元素字典中查找元素的方法字典是無(wú)序的,故不能像列表一樣通過(guò)索引index進(jìn)行查找字典需要使用鍵(key)來(lái)查找字典中對(duì)應(yīng)的值(value)dic={'name':'Alice','age':31,'city':'NewYork'}dic['name']#查找鍵為'name'的值,輸出結(jié)果為'Alice'dic['country']#查找不存在的鍵會(huì)拋出KeyError異常,輸出結(jié)果為KeyError:'country'例2-17:查找字典dic中鍵為'name'和'country'的值字典中修改元素的方法例2-18:在例2-17的字典dic中,修改鍵為'age'的值dic={'name':'Alice','age':31,'city':'NewYork'}dic['age']=30#修改鍵為'age'的值dic#輸出結(jié)果為{'name':'Alice','age':30,'city':'NewYork'}字典中增加元素的方法例2-19:在例2-17的字典dic中,增加鍵為'country'的值#方法一:dic={'name':'Alice','age':31,'city':'NewYork'}dic['country']='USA'#增加元素dic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork','country':'USA'}#方法二:dic={'name':'Alice','age':31,'city':'NewYork'}dic1={'country':'USA'}dic.update(dic1)#使用update()語(yǔ)句,將dic1中所有元素追加到了dicdic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork','country':'USA'}字典中刪除元素的方法使用del語(yǔ)句使用函數(shù)clear()。函數(shù)clear()會(huì)刪除字典中的所有鍵值對(duì)使用函數(shù)pop()。函數(shù)pop()除了刪除鍵值對(duì)外,還會(huì)返回被刪除的值。函數(shù)popitem()用于隨機(jī)刪除并返回字典中的一對(duì)鍵和值舉例例2-20:在例2-19的字典dic中,使用del語(yǔ)句刪除鍵為'country'的值dic={'name':'Alice','age':31,'city':'NewYork'}dic.clear()#使用函數(shù)clear()清空字典dic#返回空字典,輸出結(jié)果為{}dic={'name':'Alice','age':31,'city':'NewYork','country':'USA'}deldic['country']dic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork'}例2-22:在例2-17的字典dic中,使用函數(shù)clear()清空字典中的所有鍵值對(duì)舉例例2-21:在例2-17的字典dic中,使用函數(shù)pop()刪除鍵'age'的值,使用函數(shù)popitem()隨機(jī)刪除字典dic中的一對(duì)鍵和值dic={'name':'Alice','age':31,'city':'NewYork'}dic.pop('age')#刪除指定的鍵,返回被刪除的值,輸出結(jié)果為31dic#輸出結(jié)果為{'name':'Alice','city':'NewYork'}dic={'name':'Alice','age':31,'city':'NewYork','country':'USA'}dic.popitem()#隨機(jī)刪除一對(duì)鍵和值,返回被刪除的鍵和值,輸出結(jié)果為('country','USA')dic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork'}4.集合集合(set)是一個(gè)無(wú)序的不重復(fù)元素序列。與字典一樣使用一對(duì)大括號(hào)“{}”作為界定符,元素用逗號(hào)隔開(kāi)同一個(gè)集合的元素之間不允許重復(fù),集合中每個(gè)元素都是唯一的創(chuàng)建一個(gè)空集合必須用set()而不是“{}”,“{}”是用來(lái)創(chuàng)建一個(gè)空字典集合中的元素必須是可哈希的或不可變的,如數(shù)字、字符串、元組等。不可哈希的類(lèi)型,如列表和字典,不能作為集合的元素。例如:

a={'a','b','c’}

a={'a','b','c',[1,2]} #會(huì)報(bào)錯(cuò),列表為不可哈希類(lèi)型集合是無(wú)序的,并且不包含重復(fù)元素,因此不能直接修改集合中的元素。但可以對(duì)集合進(jìn)行查找、增加、刪除的操作。集合中查找元素的方法集合是無(wú)序的,同字典相同,不能通過(guò)索引index進(jìn)行查找。但可以使用in關(guān)鍵字檢查一個(gè)元素是否存在于集合中set_0={'a','b','c'}'b'inset_0#輸出結(jié)果為T(mén)rue例2-23:使用in關(guān)鍵字檢查'b'元素是否存在于集合set_0中集合中增加元素的方法使用函數(shù)add()向集合中添加一個(gè)元素或者使用函數(shù)update()添加多個(gè)元素(或另一個(gè)集合)s=set()#使用函數(shù)set()創(chuàng)建一個(gè)空集合s.add(1)#使用函數(shù)add()添加一個(gè)元素s#輸出結(jié)果為{1}s.update([2,3,4])#使用函數(shù)update()添加多個(gè)元素s#輸出結(jié)果為{1,2,3,4}s2={5,6}#添加另一個(gè)集合的元素s.update(s2)s#輸出結(jié)果為{1,2,3,4,5,6}例2-24:創(chuàng)建空集合,并在集合中增加元素集合中刪除元素的方法使用函數(shù)remove()或函數(shù)discard()刪除指定一個(gè)元素使用函數(shù)pop()隨機(jī)刪除并返回一個(gè)元素使用函數(shù)clear()清空集合除了函數(shù)discard()外,其他的方法在刪除的元素不存在時(shí)會(huì)拋出KeyErrors={1,2,3,4,5,6}s.remove(3) #使用函數(shù)remove()刪除指定一個(gè)元素s #輸出結(jié)果為{1,2,4,5,6}s.discard(7) #使用函數(shù)discard()刪除指定一個(gè)元素s #輸出結(jié)果為{1,2,4,5,6},7不存在于集合中,但不會(huì)有任何錯(cuò)誤s.pop() #使用函數(shù)pop()隨機(jī)刪除一個(gè)元素,輸出一個(gè)隨機(jī)元素,輸出結(jié)果為1s #輸出結(jié)果為{2,4,5,6}s.clear() #使用函數(shù)clear()清空集合s #輸出空集合,輸出結(jié)果為set()例2-25:刪除集合s中的元素2.2.3字符串字符串是編程語(yǔ)言中用于表示文本或字符的序列類(lèi)型。在Python中,字符串屬于不可變序列可以使用單引號(hào)、雙引號(hào)或三引號(hào)來(lái)創(chuàng)建字符串,三者可互相嵌套;三引號(hào)可以指示一個(gè)多行的字符串。例如:s1='Hello,world!’s2="Python"s3='''Tomsaid,"Let'sgo!"'''1.轉(zhuǎn)字義符轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義\(在行尾時(shí))續(xù)行符\000空\(chéng)\反斜杠符號(hào)\n換行\(zhòng)'單引號(hào)\v縱向制表符\"雙引號(hào)\t橫向制表符\a響鈴\r回車(chē)\b退格(Backspace)\f換頁(yè)\e轉(zhuǎn)義\xhh十六進(jìn)制轉(zhuǎn)義字符表2-2常見(jiàn)的轉(zhuǎn)義字符舉例在字符串前加上r或R可以創(chuàng)建原始字符串,其中的反斜杠不會(huì)被當(dāng)作轉(zhuǎn)義字符例2-26:正確使用轉(zhuǎn)義字符print('What'syourname?')SyntaxError:unterminatedstringliteral(detectedatline1)#輸出結(jié)果報(bào)錯(cuò),沒(méi)有使用轉(zhuǎn)義字符print('What\'syourname?')#使用轉(zhuǎn)義字符后可以正常顯示,輸出結(jié)果為What'syourname?print('C:\some\name')#這里的“\n”機(jī)器識(shí)別成了換行符C:\some#第一行輸出結(jié)果ame

#第二行輸出結(jié)果print(r'C:\some\name’)#在字符串前加上r或R可以創(chuàng)建原始字符串,輸出結(jié)果為C:\some\name 字符串中查找的方法2.字符串索引字符串屬于不可變序列,不能對(duì)字符串對(duì)象進(jìn)行元素增加、修改與刪除等操作使用字符串索引方式訪(fǎng)問(wèn)某個(gè)特定字符通過(guò)切片訪(fǎng)問(wèn)某個(gè)字符串區(qū)間使用in關(guān)鍵字查找子字符串字符串索引是Python編程中用于訪(fǎng)問(wèn)字符串中特定位置字符的一種機(jī)制。Python使用基于0的索引系統(tǒng),并且支持正向和反向索引正向索引是從字符串的開(kāi)端開(kāi)始計(jì)數(shù),第一個(gè)字符的索引是0,第二個(gè)字符的索引是1,依此類(lèi)推反向索引是從字符串的末尾開(kāi)始計(jì)數(shù),即最后一個(gè)字符為-1,倒數(shù)第二個(gè)字符為-2,依此類(lèi)推字符串切片字符串切片是根據(jù)索引來(lái)選擇字符串的一個(gè)子集,通常是通過(guò)指定起始索引和結(jié)束索引(有時(shí)還包括步長(zhǎng))來(lái)實(shí)現(xiàn)的切片操作不會(huì)修改原始字符串,而是返回一個(gè)新的字符串s='python'#創(chuàng)建字符串ss[2:4]#使用切片方法查找索引范圍介于[2,4)的子字符串,輸出結(jié)果為'th's[0:5]#使用切片方法查找索引范圍介于[0,5)的子字符串,輸出結(jié)果為'pytho''n'ins#使用in關(guān)鍵詞方法查找子字符串是否在創(chuàng)建字符串中,輸出結(jié)果為T(mén)rue例2-27:創(chuàng)建一個(gè)字符串s='python',使用切片方法查找索引范圍[2:4]和[0:5]的子字符串,使用in關(guān)鍵詞方法查找子字符串'n'是否在創(chuàng)建字符串s中(1)字符串常用處理方法函數(shù)作用str.capitalize()首字母大寫(xiě)str.casefold()將字符串str中的大寫(xiě)字符轉(zhuǎn)換為小寫(xiě)str.lower()同str.casefold(),只能轉(zhuǎn)換英文字母str.upper()將字符串str中的小寫(xiě)轉(zhuǎn)換為大寫(xiě)str.count(sub)返回字符串str的子字符串sub出現(xiàn)的次數(shù)str.find(sub)返回字符串str的子字符串sub第一次出現(xiàn)的位置str.join(iterable)用str連接可迭代對(duì)象iterable返回連接后的結(jié)果str.strip([chars])去除str字符串兩端的chars字符(默認(rèn)去除"\n","\t",空格),返回操作后的字符串str.lstrip([chars])同strip,去除字符串最左邊的字符str.rstrip([chars])同strip,去除字符串最右邊的字符str.replace(old,new[start:stop,count])將字符串str的子串old替換成新串new并返回操作后的字符串str.split(sep=None,maxsplit=-1)將字符串str按sep分隔符分割maxsplit次,并返回分割后的字符串?dāng)?shù)組表2-3字符串常用處理方法舉例例2-28:使用上述函數(shù)對(duì)創(chuàng)建的字符串進(jìn)行操作s='HelloWorld!'c=s.capitalize()#首字母大寫(xiě),其余全部小寫(xiě)c#輸出結(jié)果為'Helloworld!'s.lower()#用法同函數(shù)str.casefold(),英文字母全部小寫(xiě),輸出結(jié)果為'helloworld!'s.upper()#英文字母全部大寫(xiě),輸出結(jié)果為'HELLOWORLD!'s.count('l')#統(tǒng)計(jì)子字符串’l’出現(xiàn)的次數(shù),輸出結(jié)果為3s.find('o') #返回’o’第一次出現(xiàn)的位置,輸出結(jié)果為4it=['Join','the','str','!']#創(chuàng)建一個(gè)列表it,屬于可迭代對(duì)象it#輸出結(jié)果為['Join','the','str','!']'*'.join(it) #用字符串連接可迭代對(duì)象,輸出結(jié)果為'Join*the*str*!''\n\taaa\n\taaa\n\t'.strip()#去除字符串'\n\taaa\n\taaa\n\t'兩端的chars字符,輸出結(jié)果為'aaa\n\taaa''xx,你好'.replace('xx','張三')#將字符串'xx,你好'的子串'xx'替換成新串'張三',輸出結(jié)果為'張三,你好''1,2,3,4,5,6,7'.split(',')#使用逗號(hào)分隔字符串'1,2,3,4,5,6,7',輸出結(jié)果為['1','2','3','4','5','6','7'](2)字符串格式化字符串格式化用來(lái)把整數(shù)、實(shí)數(shù)、列表等對(duì)象轉(zhuǎn)化為特定格式的字符串例2-29:使用字符串格式化將對(duì)象x1和x2轉(zhuǎn)化為特定格式的字符串x1='Zhangsan'x2=30print('Hesaidhisnameis%s.'%x1)#%s表示占位字符型,輸出結(jié)果為HesaidhisnameisZhangsan.print('Hesaidhewas%d.'%x2)#%d表示占位int,輸出結(jié)果為Hesaidhewas30.print(f'Hesaidhisnameis{x1}.')#這里f也可以大寫(xiě),輸出結(jié)果為HesaidhisnameisZhangsan.Python編碼規(guī)范2.1內(nèi)容導(dǎo)航CONTENTSPython流程控制2.4Python函數(shù)2.5Python內(nèi)置數(shù)據(jù)類(lèi)型2.2Python運(yùn)算符和表達(dá)式2.32.3.1算術(shù)運(yùn)算符表2-4算術(shù)運(yùn)算符運(yùn)算符含義+加法運(yùn)算符,兩個(gè)對(duì)象相加,或者一元加-減法運(yùn)算符,兩個(gè)對(duì)象相減,或得到負(fù)數(shù)*乘法運(yùn)算符,兩個(gè)操作數(shù)相乘,或返回一個(gè)被重復(fù)若干次的字符串/除法運(yùn)算符,兩個(gè)操作數(shù)相除(得到的運(yùn)算結(jié)果為浮點(diǎn)數(shù))%模運(yùn)算符,返回除法(/)的余數(shù)//整除運(yùn)算符,返回商的整數(shù)部分**冪運(yùn)算符,x**y運(yùn)算返回x的y次冪例2-30:使用上述算術(shù)運(yùn)算符進(jìn)行a,b數(shù)值運(yùn)算a=5b=3a+b #加法運(yùn)算,輸出結(jié)果為8a-b #減法運(yùn)算,輸出結(jié)果為2a*b #乘法運(yùn)算,輸出結(jié)果為15a/b #除法運(yùn)算,計(jì)算結(jié)果為浮點(diǎn)數(shù),輸出結(jié)果為1.6666666666666667a%b #取模運(yùn)算,返回a除以b的余數(shù),輸出結(jié)果為2a//b #整除運(yùn)算,返回a除以b的商的整數(shù)部分,不進(jìn)行四舍五入,輸出結(jié)果為1a**b #冪運(yùn)算,返回a的b次冪,輸出結(jié)果為125常用的算術(shù)函數(shù)函數(shù)作用函數(shù)作用abs(x)返回x的絕對(duì)值max(x1,x2,……xn)返回x1,x2,……xn中的最大值int(x)返回x的整數(shù)值min(x1,x2,……xn)返回x1,x2,……xn中的最小值float(x)返回x的浮點(diǎn)數(shù)divmod(x,y)返回兩個(gè)數(shù)的商和余數(shù),相當(dāng)于(x//y,x%y)round(x,n)返回浮點(diǎn)數(shù)x的四舍五入值,n是保留的小數(shù)位數(shù)pow(x,y)返回x的y次方表2-5常用的算術(shù)函數(shù)舉例例2-31:使用上述算術(shù)函數(shù)進(jìn)行x,y,z數(shù)值運(yùn)算x=-5.8263y=2z=13print(abs(x)) #返回x的絕對(duì)值,輸出結(jié)果為5.8263print(int(x)) #返回x的整數(shù)值,輸出結(jié)果為-5print(float(y)) #返回y的浮點(diǎn)數(shù),輸出結(jié)果為2.0print(round(x,2)) #返回浮點(diǎn)數(shù)x的四舍五入值,保留兩位小數(shù),輸出結(jié)果為-5.83print(max(x,y,z)) #返回x,y,z中的最大值,輸出結(jié)果為13print(min(x,y,z)) #返回x,y,z中的最小值,輸出結(jié)果為-5.8263print(divmod(z,y)) #返回z,y兩個(gè)數(shù)的商和余數(shù),相當(dāng)于(z//y,z%y),輸出結(jié)果為(6,1)print(pow(x,y)) #返回x的y次方,輸出結(jié)果為33.945771692.3.2關(guān)系運(yùn)算符運(yùn)算符說(shuō)明>

大于:如果左操作數(shù)大于右操作數(shù),則為T(mén)rue<

小于:如果左操作數(shù)小于右操作數(shù),則為T(mén)rue==等于:如果兩個(gè)操作數(shù)相等,則為T(mén)rue!=不等于:如果兩個(gè)操作數(shù)不相等,則為T(mén)rue>=大于等于:如果左操作數(shù)大于或等于右操作數(shù),則為T(mén)rue<=小于等于:如果左操作數(shù)小于或等于右操作數(shù),則為T(mén)rue表2-6關(guān)系運(yùn)算符關(guān)系運(yùn)算符,也稱(chēng)為比較運(yùn)算符,在Python中用于比較兩個(gè)值之間的關(guān)系,并返回一個(gè)布爾值(True或False)舉例例2-32:使用上述關(guān)系運(yùn)算符進(jìn)行a,b,c,d數(shù)值運(yùn)算a=6b=5c=5d=3a>b #如果a大于b,則為T(mén)rue,輸出結(jié)果為T(mén)ured<c #如果d小于c,則為T(mén)rue,輸出結(jié)果為T(mén)ureb==c #如果b,c兩個(gè)操作數(shù)相等,則為T(mén)rue,輸出結(jié)果為T(mén)urec!=d #如果c,d兩個(gè)操作數(shù)不相等,則為T(mén)rue,輸出結(jié)果為T(mén)urea>=b #如果a大于或等于b,則為T(mén)rue,輸出結(jié)果為T(mén)ured<=c #如果d小于或等于c,則為T(mén)rue,輸出結(jié)果為T(mén)ure2.3.3邏輯運(yùn)算符表2-7邏輯運(yùn)算符邏輯運(yùn)算符用于連接兩個(gè)或多個(gè)布爾值(True/False)的表達(dá)式,并根據(jù)這些表達(dá)式的值來(lái)產(chǎn)生新的布爾值運(yùn)算符說(shuō)明and邏輯與:用于組合兩個(gè)布爾表達(dá)式,當(dāng)且僅當(dāng)兩個(gè)表達(dá)式都為T(mén)rue時(shí),結(jié)果才為T(mén)rue,否則返回Falseor邏輯或:用于組合兩個(gè)布爾表達(dá)式,當(dāng)至少有一個(gè)表達(dá)式為T(mén)rue時(shí),結(jié)果就為T(mén)ruenot邏輯非:用于反轉(zhuǎn)一個(gè)布爾表達(dá)式的值。如果表達(dá)式為T(mén)rue,則not運(yùn)算符返回False;如果表達(dá)式為False,則not運(yùn)算符返回True舉例例2-33:使用上述邏輯運(yùn)算符進(jìn)行a,b布爾值運(yùn)算a=5>3b=5<3aandb #當(dāng)且僅當(dāng)兩個(gè)表達(dá)式都為T(mén)rue時(shí),結(jié)果才為T(mén)rue,否則返回False,輸出結(jié)果為Falseaorb #當(dāng)至少有一個(gè)表達(dá)式為T(mén)rue時(shí),結(jié)果就為T(mén)rue,輸出結(jié)果為T(mén)ruenota #a表達(dá)式為T(mén)rue,not運(yùn)算符返回False,輸出結(jié)果為Falsenotb #b表達(dá)式為False,not運(yùn)算符返回True,輸出結(jié)果為T(mén)rue2.3.4特殊運(yùn)算符運(yùn)算符說(shuō)明=將右側(cè)的值或表達(dá)式的計(jì)算結(jié)果賦給左側(cè)的變量+=將左側(cè)變量與右側(cè)的值相加,并將結(jié)果賦給左側(cè)變量-=從左側(cè)變量中減去右側(cè)的值,并將結(jié)果賦給左側(cè)變量*=將左側(cè)變量與右側(cè)的值相乘,并將結(jié)果賦給左側(cè)變量/=用左側(cè)變量除以右側(cè)的值,并將結(jié)果賦給左側(cè)變量%=用左側(cè)變量除以右側(cè)的值,并將余數(shù)賦給左側(cè)變量//=用左側(cè)變量整除右側(cè)的值,并將結(jié)果(只取整數(shù)部分)賦給左側(cè)變量**=將左側(cè)變量作為底數(shù),右側(cè)的值作為指數(shù)進(jìn)行冪運(yùn)算,并將結(jié)果賦給左側(cè)變量表2-8賦值運(yùn)算符運(yùn)算符說(shuō)明in如果在指定序列中找到值/變量,返回True:否則返回Falsenotin如果在指定序列中沒(méi)有找到值/變量,返回True;否則返回False表2-9成員運(yùn)算符舉例例2-34:使用上述賦值運(yùn)算符和成員運(yùn)算符進(jìn)行特定的操作運(yùn)算#賦值運(yùn)算符舉例:x=10 #將整數(shù)10賦給變量xx #輸出結(jié)果為10x+=3 #相當(dāng)于x=x+3x #輸出結(jié)果為13,新的x值為13x-=3 #相當(dāng)于x=x–3x #輸出結(jié)果為10,x值又回到了10x*=3 #相當(dāng)于x=x*3x #輸出結(jié)果為30x/=3 #相當(dāng)于x=x/3x #輸出結(jié)果為10.0,新的x值為10.0x%=3x #相當(dāng)于x=x%3,輸出結(jié)果為1.0#成員運(yùn)算符舉例:3in[1,2,3,4,5] #如果在序列[1,2,3,4,5]中找到值3,則返回True,輸出結(jié)果為T(mén)rue6notin[1,2,3,4,5] #如果在序列[1,2,3,4,5]中沒(méi)有找到值3,則返回True,輸出結(jié)果為T(mén)ruePython編碼規(guī)范2.1內(nèi)容導(dǎo)航CONTENTSPython函數(shù)2.5Python內(nèi)置數(shù)據(jù)類(lèi)型2.2Python運(yùn)算符和表達(dá)式2.3Python流程控制2.42.4Python流程控制Python流程控制是編程中用于決定代碼執(zhí)行順序的機(jī)制,它使得程序能夠根據(jù)不同的條件或規(guī)則來(lái)執(zhí)行不同的代碼塊順序結(jié)構(gòu)是程序的基礎(chǔ)。任何程序均由順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)這三種基本結(jié)構(gòu)組成,這些基本結(jié)構(gòu)都有一個(gè)入口和一個(gè)出口在選擇和循環(huán)結(jié)構(gòu)中,條件可以是任意表達(dá)式,但執(zhí)行結(jié)果必須為布爾類(lèi)型None,0,空(空字符串,空列表,空字典等)三種的布爾值為False,其余均為T(mén)rue2.4.1順序結(jié)構(gòu)順序結(jié)構(gòu)是程序代碼自上而下運(yùn)行,逐條執(zhí)行每一條Python代碼,不重復(fù)執(zhí)行任何代碼,也不會(huì)跳過(guò)任何代碼例2-35:使用順序結(jié)構(gòu)逐條執(zhí)行以下每一條Python代碼print("Sunday")print("Monday")print("Tuesday")print("Wednesday")print("Thursday")print("Friday")print("Saturday")#輸出結(jié)果為SundayMondayTuesdayWednesdayThursdayFridaySaturday1.單分支選擇結(jié)構(gòu)(if語(yǔ)句)2.4.2選擇結(jié)構(gòu)選擇結(jié)構(gòu)也叫判斷結(jié)構(gòu)或分支結(jié)構(gòu),根據(jù)滿(mǎn)足的條件去執(zhí)行相應(yīng)的動(dòng)作,即根據(jù)條件判斷的真假去執(zhí)行不同分支所對(duì)應(yīng)的子代碼分類(lèi):包括單分支、雙分支和多分支結(jié)構(gòu)單分支選擇結(jié)構(gòu)只包含一個(gè)條件表達(dá)式和一個(gè)代碼塊,語(yǔ)法結(jié)構(gòu)如下:if條件表達(dá)式:

代碼塊注意:if條件表達(dá)式后面的“:”不可少,表示一個(gè)語(yǔ)句塊的開(kāi)始。如果條件為真(True),則執(zhí)行該代碼塊如果條件為假(False),則跳過(guò)該代碼塊例2-36:使用if語(yǔ)句執(zhí)行以下Python代碼x=10ifx>5:print("x大于5")#輸出結(jié)果為x大于52.雙分支選擇結(jié)構(gòu)(if-else語(yǔ)句)雙分支選擇結(jié)構(gòu)包含一個(gè)條件判斷、一個(gè)“if”代碼塊和一個(gè)“else”代碼塊,語(yǔ)法結(jié)構(gòu)如下:if條件表達(dá)式:

代碼塊1else:

代碼塊2如果條件為真,則執(zhí)行“if”代碼塊1如果條件為假,則執(zhí)行“else”代碼塊2x=3ifx>5:print("x大于5")else:print("x不大于5") #輸出結(jié)果為x不大于5例2-37:使用if-else語(yǔ)句執(zhí)行以下Python代碼3.多分支選擇結(jié)構(gòu)(if-elif-else語(yǔ)句)多分支選擇結(jié)構(gòu)可以根據(jù)多個(gè)條件來(lái)執(zhí)行不同的代碼塊。它包含一個(gè)或多個(gè)“elif”代碼塊,一個(gè)“if”代碼塊和一個(gè)“else”代碼塊,語(yǔ)法結(jié)構(gòu)如下:if條件表達(dá)式:

代碼塊1elif

條件表達(dá)式2:

代碼塊2elif...:

.....else:

代碼塊nPython會(huì)按照“if”、“elif”的順序檢查每個(gè)條件,并執(zhí)行第一個(gè)為真的條件對(duì)應(yīng)的代碼塊。如果沒(méi)有任何條件為真,并且存在“else”代碼塊,則執(zhí)行“else”代碼塊1.while循環(huán)2.4.3循環(huán)結(jié)構(gòu)定義:循環(huán)結(jié)構(gòu)是用于重復(fù)執(zhí)行一段代碼塊,直到滿(mǎn)足特定的條件結(jié)束循環(huán)類(lèi)型:while循環(huán)、for循環(huán)while循環(huán)是最簡(jiǎn)單的循環(huán),幾乎所有程序語(yǔ)言中都存在while循環(huán)這種或者類(lèi)似結(jié)構(gòu),語(yǔ)法結(jié)構(gòu)如下:while條件表達(dá)式:

循環(huán)體while循環(huán)一般用于循環(huán)次數(shù)難以提前確定的情況while循環(huán)用于在滿(mǎn)足某個(gè)條件時(shí)重復(fù)執(zhí)行代碼塊,只要條件為真(True),循環(huán)就會(huì)繼續(xù)執(zhí)行舉例例2-39:使用while循環(huán)執(zhí)行以下Python代碼#計(jì)算1到10的累加和sum=0i=1whilei<=10:

sum+=I #sum+=i表示是sum=sum+i

i+=1 #i+=1表示是i=i+1

print(sum)#輸出結(jié)果為136101521283645552.for循環(huán)#遍歷列表中的元素fruits=['apple','banana','cherry']#fruits(復(fù)數(shù)形式)是列表名,表示多個(gè)水果的集合forfruitinfruits:#fruit(單數(shù)形式)是臨時(shí)變量名,表示每次循環(huán)時(shí)取出列表中的單個(gè)元素print(fruit)#輸出結(jié)果為applebananacherry例2-40:使用for循環(huán)執(zhí)行以下Python代碼for循環(huán)的語(yǔ)法結(jié)構(gòu)如下:for變量in可迭代對(duì)象:

循環(huán)體for循環(huán)一般用于循環(huán)次數(shù)可以提前確定的情況,尤其適用于枚舉或遍歷可迭代對(duì)象中(如字典、集合、文件對(duì)象等)元素for循環(huán)用于枚舉或遍歷一個(gè)序列(如列表、元組、字符串)中的元素Python編碼規(guī)范2.1內(nèi)容導(dǎo)航CONTENTSPython內(nèi)置數(shù)據(jù)類(lèi)型2.2Python運(yùn)算符和表達(dá)式2.3Python流程控制2.4Python函數(shù)2.5

注意2.5.1函數(shù)的定義在定義函數(shù)時(shí),函數(shù)名后要有圓括號(hào),圓括號(hào)中是參數(shù)列表參數(shù)列表可以為空,也可以有多個(gè)參數(shù),多個(gè)參數(shù)之間用逗號(hào)隔開(kāi)函數(shù)體需要縮進(jìn)書(shū)寫(xiě),函數(shù)體中可以包含一行或多行語(yǔ)句return語(yǔ)句表示函數(shù)的返回值,如果函數(shù)沒(méi)有返回值,可以省略不寫(xiě);如果有多個(gè)返回值,需要使用逗號(hào)將返回值隔開(kāi)函數(shù)是一段有特定功能的、可重復(fù)使用的代碼塊在Python中使用關(guān)鍵字“def”定義函數(shù),函數(shù)定義的語(yǔ)法結(jié)構(gòu)如下:def<函數(shù)名>([<參數(shù)列表>]):

<函數(shù)體>[return<返回值列表>]2.5.2函數(shù)的調(diào)用例2-41:定義一個(gè)可以求兩個(gè)數(shù)的和值的函數(shù),并進(jìn)行調(diào)用defadd_numbers(a,b): #定義函數(shù)

sum=a+breturnsumresult=add_numbers(3,5)#調(diào)用函數(shù)print(result)#輸出結(jié)果為8函數(shù)定義以后還不能直接運(yùn)行,需要在合適的位置進(jìn)行調(diào)用才能運(yùn)行函數(shù)調(diào)用可以作為單獨(dú)一行語(yǔ)句,也可以作為表達(dá)式中的一部分。當(dāng)函數(shù)作為表達(dá)式的一部分時(shí),函數(shù)需要有返回值2.5.3函數(shù)的參數(shù)形式參數(shù):簡(jiǎn)稱(chēng)為形參,在使用def定義函數(shù)時(shí),函數(shù)名后面參數(shù)列表里的變量即為形式參數(shù)實(shí)際參數(shù):簡(jiǎn)稱(chēng)為實(shí)參,在調(diào)用函數(shù)時(shí)提供的值或者變量稱(chēng)作實(shí)際參數(shù)。在函數(shù)調(diào)用時(shí),將實(shí)參的值或引用傳遞給形參。如果在定義函數(shù)時(shí)沒(méi)有形參,表示這個(gè)函數(shù)不接收參數(shù)函數(shù)定義時(shí),可以不指定形參的數(shù)據(jù)類(lèi)型,形參的類(lèi)型由實(shí)參類(lèi)型或者python解釋器來(lái)決定函數(shù)返回值的類(lèi)型由return語(yǔ)句來(lái)決定,如果函數(shù)中沒(méi)有return語(yǔ)句或沒(méi)有執(zhí)行return語(yǔ)句,則函數(shù)默認(rèn)返回空值1.實(shí)參和形參舉例例2-42:定義函數(shù)求任意兩個(gè)數(shù)的平方和deff(a,b): #定義函數(shù)f,其中有兩個(gè)形參:a和bc=a**2+b**2returncres=f(3,4) #調(diào)用函數(shù)f,3和4為實(shí)參print(res) #輸出結(jié)果為252.參數(shù)類(lèi)型定義:是指在定義函數(shù)時(shí),可以為形參設(shè)置默認(rèn)值。注意:在調(diào)用設(shè)有默認(rèn)值形參的函數(shù)時(shí),可以不對(duì)有默認(rèn)值的參數(shù)傳值,也可以通過(guò)實(shí)參顯式傳遞值的方式來(lái)替換其默認(rèn)值。在定義函數(shù)時(shí),沒(méi)有默認(rèn)值的參數(shù)放置在參數(shù)列表的左邊,有默認(rèn)值的參數(shù)需放置在參數(shù)列表的最右邊,否則將導(dǎo)致定義函數(shù)失敗。在python中函數(shù)的參數(shù)可以有多種形式,例如普通參數(shù)、默認(rèn)值參數(shù)、關(guān)鍵字參數(shù),可變長(zhǎng)度參數(shù)等。(1)默認(rèn)值參數(shù)舉例例2-43:為函數(shù)fun()設(shè)置默認(rèn)值參數(shù)deffun(a=0,b=0):c=a**2+b**2returncprint(fun()) #輸出結(jié)果為0print(fun(5)) #輸出結(jié)果為25print(fun(2,3)) #輸出結(jié)果為13(2)關(guān)鍵字參數(shù)例2-44:為函數(shù)設(shè)置關(guān)鍵字參數(shù)defuser_info(name,birth,sex='女'):print('用戶(hù)名:{}'.format(name),end='')print('性別:{}'.format(sex),end='')print('出生日期:{}'.format(birth))

user_info(name=‘張三’,birth=‘2009-6-3’) #調(diào)用函數(shù)時(shí),只對(duì)name和birth參數(shù)傳值,sex參數(shù)使用了默認(rèn)值,輸出結(jié)果為用戶(hù)名:張三性別:女出生日期:2009-6-3user_info(name='李四',sex='男',birth='1993-9-23’)

#調(diào)用函數(shù)時(shí),按照參數(shù)名傳遞參數(shù),輸出結(jié)果為用戶(hù)名:李四性別:男出生日期:1993-9-23一般情況下,函數(shù)傳遞參數(shù)是按照順序進(jìn)行傳遞的關(guān)鍵字參數(shù):在python中,可以通過(guò)參數(shù)名傳遞參數(shù),而不用關(guān)心參數(shù)列表中的順序,這類(lèi)參數(shù)被稱(chēng)之為關(guān)鍵字參數(shù)。通過(guò)使用關(guān)鍵字參數(shù),可以不必?fù)?dān)心參數(shù)的順序,還可以只給想要的參數(shù)進(jìn)行賦值(3)可變長(zhǎng)度參數(shù)deff1(a,*args,b=2):print(a,b,args,type(args))

f1(1,2,3,4,5,6,7,8,b=200)

#輸出結(jié)果為1200(2,3,4,5,6,7,8)<class'tuple'>例2-45:為函數(shù)設(shè)置可變長(zhǎng)度參數(shù)可變長(zhǎng)度參數(shù):如果在定義函數(shù)時(shí)不確定參數(shù)的個(gè)數(shù),可以使用可變長(zhǎng)度參數(shù)。Python提供了兩種方式接收沒(méi)有直接定義的參數(shù)。在參數(shù)前面加一個(gè)星號(hào)(*):是通過(guò)元組的方式來(lái)接受沒(méi)有直接定義的參數(shù)。如果在函數(shù)調(diào)用時(shí)沒(méi)有指定參數(shù),則是一個(gè)空元組。在參數(shù)前面加兩個(gè)星號(hào)(**):是將沒(méi)被定義的關(guān)鍵參數(shù)放到一個(gè)字典里。舉例例2-46:將關(guān)鍵參數(shù)放置到字典中deff_print(name,birth,sex='女',**medhis):print('姓名:{}'.format(name),end='')print('出生日期:{}'.format(birth),end='')print('性別:{}'.format(sex),end='')print('既往病史:{}'.format(medhis),end='')return;f_print(name='王紅',birth='1962-8-12',sex='女',medhis=('高血壓','糖尿病','冠心病'))#輸出結(jié)果為姓名:王紅出生日期:1962-8-12性別:女既往病史:{'medhis':('高血壓','糖尿病','冠心病')}2.5.4函數(shù)的遞歸與嵌套遞歸是指函數(shù)調(diào)用自身的過(guò)程,可以編寫(xiě)遞歸函數(shù)來(lái)解決被分解為相似子問(wèn)題的問(wèn)題遞歸函數(shù)包含:基本情況和遞歸情況基本情況:指的是當(dāng)滿(mǎn)足某個(gè)條件時(shí)函數(shù)應(yīng)該停止遞歸遞歸情況:則是指函數(shù)調(diào)用自身來(lái)解決一個(gè)更小或更簡(jiǎn)單的子問(wèn)題遞歸思維類(lèi)似于數(shù)學(xué)中的程序框架圖,它是從下而上的思維方式遞歸算法往往可以使代碼更簡(jiǎn)潔,在設(shè)計(jì)算法時(shí)注意:明確遞歸的終止條件,即明確遞歸出口;程序邏輯要有重復(fù)性;確定遞歸終止時(shí)有明確的解1.遞歸函數(shù)舉例例2-47:利用遞歸函數(shù)計(jì)算階乘deffactorial(n):ifn==1:return1else:returnn*factorial(n-1)result=factorial(5)print(result)#通過(guò)遞歸調(diào)用計(jì)算5*4*3*2*1的結(jié)果,輸出結(jié)果為102.嵌套函數(shù)例2-48:嵌套函數(shù)使用示例defouter_function(x):definner_function(y):returny*2returninner_function(x)result=outer_function(5)#inner_function()是outer_function()的嵌套函數(shù),它被用來(lái)對(duì)傳入的參數(shù)進(jìn)行加工處理print(result) #輸出結(jié)果為10定義:在一個(gè)函數(shù)內(nèi)部定義另一個(gè)函數(shù),這就是嵌套函數(shù)嵌套函數(shù)可以更好地組織和管理代碼,尤其是在某個(gè)函數(shù)內(nèi)部需要另一個(gè)輔助函數(shù)來(lái)完成特定任務(wù)時(shí),高效運(yùn)行代碼2.5.5lambda匿名函數(shù)Lambda匿名函數(shù)是一種特殊的匿名函數(shù),它可以在不使用def或者return等關(guān)鍵字的情況下創(chuàng)建簡(jiǎn)單的函數(shù)Lambda匿名函數(shù)通常用于需要一個(gè)簡(jiǎn)單函數(shù)的地方,而不需要定義一個(gè)完整的函數(shù)。具有以下的語(yǔ)法形式:#函數(shù)名=lambdaarguments:expression其中,lambda是關(guān)鍵字arguments是函數(shù)的參數(shù)expression是函數(shù)的返回值優(yōu)點(diǎn):可以簡(jiǎn)化代碼,尤其是在一些函數(shù)式編程的場(chǎng)景中經(jīng)常使用Lambda匿名函數(shù)只能是一行語(yǔ)句或表達(dá)式,不能是多行語(yǔ)句或表達(dá)式舉例例2-49:定義一個(gè)簡(jiǎn)單的加法Lambda匿名函數(shù)add=lambdax,y:x+y#定義一個(gè)簡(jiǎn)單的加法Lambda匿名函數(shù),x、y是兩個(gè)參數(shù),x+y是返回值表達(dá)式print(add(2,3)) #輸出結(jié)果為5#將Lambda匿名函數(shù)作為參數(shù)傳遞給sorted()函數(shù)points=[(1,2),(3,1),(5,3),(4,2)]points_sorted=sorted(points,key=lambdapoint:point[0])#根據(jù)sorted()函數(shù)對(duì)x+y值的大小進(jìn)行排序print(points_sorted) #輸出結(jié)果為[(1,2),(3,1),(4,2),(5,3)]Lambda匿名函數(shù)與內(nèi)置函數(shù)結(jié)合例2-50:使用map()函數(shù)結(jié)合Lambda匿名函數(shù)對(duì)列表中的每個(gè)元素進(jìn)行求平方操作,使用

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論