Python編程基礎(chǔ)教電子教案_第1頁
Python編程基礎(chǔ)教電子教案_第2頁
Python編程基礎(chǔ)教電子教案_第3頁
Python編程基礎(chǔ)教電子教案_第4頁
Python編程基礎(chǔ)教電子教案_第5頁
已閱讀5頁,還剩324頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章Python概述?1Python簡介?2Python開發(fā)環(huán)境的?3編寫一個(gè)簡單的Python程序知識點(diǎn)及難點(diǎn)知識導(dǎo)圖1.1

Python簡介01Python的創(chuàng)始人為吉多·范羅蘇姆(GuidovanRossum)。1989年圣誕節(jié)期間,Guido開始編寫Python編譯器。Python這個(gè)名字來自Guido喜愛的電視連續(xù)劇《蒙提·派森的飛行馬戲團(tuán)》。Python的發(fā)展歷程合類型概述1.1

Python簡介01Python版本的發(fā)展歷程如下:1994年1月發(fā)布Python

1.0;2000年10月發(fā)布Python

2.0;2004年11月發(fā)布Python

2.4;2006年9月發(fā)布Python

2.5;2008年12月發(fā)布Python

3.0;2015年12月發(fā)布Python

3.5;2016年12月發(fā)布Python3.6;2018年6月發(fā)布Python

3.7。Python的發(fā)展歷程合類型概述1.1

Python簡介02簡單易學(xué)Python的特性解釋型語言可擴(kuò)展性和可嵌入性面向?qū)ο笳Z言具有豐富的編程庫免費(fèi)、開源1.1

Python簡介03Web開發(fā)Python的應(yīng)用場合網(wǎng)絡(luò)軟件開發(fā)人工智能數(shù)據(jù)分析與處理1.2

Python開發(fā)環(huán)境的構(gòu)建01Python的學(xué)習(xí)過程需要用到IDE(Integrated

Development

Environment,集成開發(fā)環(huán)境)或

者代碼編輯器,或者集成的開發(fā)編輯器。Python開發(fā)工具可以幫助開發(fā)者加快使用Python開發(fā)的速度,以提高效率。書中表1.1所示為Python的

IDE的介紹。Python的IDE1.2

Python開發(fā)環(huán)境的構(gòu)建02下載Python安裝包在Windows操作系統(tǒng)中安裝Python安裝測試編寫程序配置Python環(huán)境變量1.2

Python開發(fā)環(huán)境的構(gòu)建03檢測Python版本在Linux操作系統(tǒng)中安裝Python安裝Python

3版本1.2

Python開發(fā)環(huán)境的構(gòu)建04檢測Python版本在Mac

OS中安裝Python安裝Python

3.71.2

Python開發(fā)環(huán)境的構(gòu)建05安裝pipPython第三方庫的安裝安裝wheel(用離線安裝下載下來的.whl文件)安裝第三方庫1.3

編寫一個(gè)簡單的Python程序01Python是一種腳本語言,編輯完成的源程序稱為源代碼,可以直接運(yùn)行。Python程序的運(yùn)行過程分成兩個(gè)步驟:解釋器將源代碼翻譯成字節(jié)碼,然后由虛擬機(jī)解釋執(zhí)行,如圖所示。本節(jié)將介紹Python程序的執(zhí)行原理,并通過Python程序文件執(zhí)行方式和Python程序交互執(zhí)行方式兩種方式來實(shí)現(xiàn)第一個(gè)Python程序:Hello

World。Python程序執(zhí)行原理1.3

編寫一個(gè)簡單的Python程序02打開IDLE程序Python程序文件執(zhí)行方式在IDLE打開的情況下,按Ctrl+N組合鍵新打開一個(gè)窗口在新窗口中進(jìn)行編程從“Run”菜單中選擇“Run

Module”菜單項(xiàng),執(zhí)行代碼文件1.3

編寫一個(gè)簡單的Python程序03打開cmd.exe或PowerShell,輸入python指令Python程序交互執(zhí)行方式在Python交互式環(huán)境中輸入print('Hello

World'),按回車鍵在Python交互式環(huán)境中輸入exit()指令即可退出

Python交互式環(huán)境本章小結(jié)本章介紹了Python的發(fā)展歷程、特性和應(yīng)用場合,具體講解了Python在Windows、Linux和Mac

OS這3種操作系統(tǒng)中的安裝方式,再通過Python交互方式和Python文件方式來實(shí)現(xiàn)第一個(gè)Python程序:Hello

World。第2章Python語法概述?1

?程序的格式框架?2

?標(biāo)識符與關(guān)鍵字?3

?數(shù)據(jù)類型?4

?語句概述?5

?基本輸入和輸出函數(shù)知識點(diǎn)及難點(diǎn)知識導(dǎo)圖2.1程序的格式框架01

Python的代碼編寫一般是頂行編寫并且不留空白的。

縮進(jìn)是指每行語句開始的空白區(qū)域,Python用它來表示程序的包含和層次關(guān)系。分層縮進(jìn)2.1程序的格式框架分分層層縮縮進(jìn)進(jìn)0011判斷兩個(gè)數(shù)的大小,大數(shù)加10,并輸出。代碼如下:2.1程序的格式框架01分層縮進(jìn)注意事項(xiàng):縮進(jìn)可通過Tab鍵和多個(gè)空格(一般是4個(gè)空格)來實(shí)現(xiàn),但是二者不能混合使用??s進(jìn)的空白數(shù)量是可變的,但是所有代碼塊語句必須包含相同的縮進(jìn)空白數(shù)量。Python對語句之間的層次關(guān)系沒有限制,可以嵌套使用多層縮進(jìn)。2.1程序的格式框架02代碼注釋是用于提高代碼可讀性的輔助性文字,不會被執(zhí)行,會被編譯器或者解釋器略過。注釋有利于代碼的維護(hù)和閱讀,給代碼添加注釋是一個(gè)良好的編程習(xí)慣。Python支持兩種格式的注釋:單行注釋和多行注釋。代碼注釋2.1程序的格式框架02代碼注釋單行注釋。2.1程序的格式框架02多行注釋以3個(gè)單引號(''')或3個(gè)雙引號(""")表示注釋的開始,以3個(gè)單引號(''')或3個(gè)雙引號(""")表示注釋結(jié)束。。代碼注釋2.1程序的格式框架03Python對每行代碼的長度是沒有限制的,但是單行代碼太長不利于閱讀,因此可以使用續(xù)行符將單行代碼分割為多行。Python的續(xù)行符用反斜杠(\)符號表示。續(xù)行符續(xù)行符的例子。代碼如下:2.1程序的格式框架03續(xù)行符注意事項(xiàng):續(xù)行符后面不能跟空格。續(xù)行符后直接換行,且換行后必須寫內(nèi)容。2.2

標(biāo)識符與關(guān)鍵字01標(biāo)識符

標(biāo)識符是開發(fā)人員在程序中自定義的一些符號和名稱,如變量名、函數(shù)名、數(shù)組名、類名等。Python關(guān)于標(biāo)識符的語法規(guī)則如下:

標(biāo)識符由字母、下畫線和數(shù)字組成,長度不受限制。標(biāo)識符的第一個(gè)字符不能是數(shù)字字符。標(biāo)識符不能是關(guān)鍵字。標(biāo)識符區(qū)分大小寫。2.2

標(biāo)識符與關(guān)鍵字02關(guān)鍵字,也稱為保留字,是具有特定用途或者被賦予特殊意義的單詞,Python不允許開發(fā)者自己定義和關(guān)鍵字同名的標(biāo)識符。標(biāo)識符與關(guān)鍵字的例子。代碼如下:關(guān)鍵字2.3

數(shù)據(jù)類型01數(shù)字類型

數(shù)字類型用于存儲數(shù)值。他們是不可改變的數(shù)據(jù)類型。Python支持以下4種不同的數(shù)字類型:int(有符號整數(shù)類型)

bool(長整數(shù)類型,也可以代表八進(jìn)制和十六進(jìn)制)float(浮點(diǎn)數(shù)類型)complex(復(fù)數(shù))2.3

數(shù)據(jù)類型02整數(shù)和浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)部存儲的方式是不同的,整數(shù)運(yùn)算永遠(yuǎn)是精確的,而浮點(diǎn)數(shù)運(yùn)算則可能會因四舍五入而產(chǎn)生誤差。整數(shù)和浮點(diǎn)數(shù)的例子。代碼如下:數(shù)字類型02字符串是以一對單引號(‘’)或一對雙引號(“”)括起來的任意文本。2.3

數(shù)據(jù)類型數(shù)數(shù)字字類類型型字符串類型的例子。代碼如下:2.4

語句概述表表達(dá)達(dá)式式語語句句0011

?

Python的表達(dá)式語句由表達(dá)式組成。表達(dá)式語句的例子。代碼如下:2.4

語句概述02賦值語句包含3部分:左值、賦值運(yùn)算符和右值。賦值語句有兩個(gè)用途:定義新的變量和讓已定義的變量指向特定值。賦值語句賦值語句的基本形式的例子。代碼如下:注意事項(xiàng):左值必須是變量。右值可以是變量、值或結(jié)果為值的任何表達(dá)式。2.4

語句概述031.函數(shù)調(diào)用語句其他語句函數(shù)調(diào)用語句的例子。代碼如下:2.控制語句控制語句分為分支語句和循環(huán)語句。2.5基本輸入和輸出函數(shù)01Python提供了print()內(nèi)置函數(shù)用于輸出運(yùn)算結(jié)果,默認(rèn)的標(biāo)準(zhǔn)輸出是顯示器。print()函數(shù)的使用格式如下:print()函數(shù)print([obj1,…][,sep='

'][,end='

\n'][,file=sys.stdout])說明:[]表示可以省略的參數(shù)。sep表示分隔符,默認(rèn)是''。end表示結(jié)尾符,即句末的結(jié)尾符,默認(rèn)為'\n'。file表示輸出位置,默認(rèn)為sys.stdout,即命令行。2.5基本輸入和輸出函數(shù)pprriinntt(())函函數(shù)數(shù)0011print()函數(shù)的例子。代碼如下:2.5基本輸入和輸出函數(shù)02Python提供了input()內(nèi)置函數(shù)從標(biāo)準(zhǔn)輸入讀入一行文本,默認(rèn)的標(biāo)準(zhǔn)輸入是通過鍵盤實(shí)現(xiàn)的。input()函數(shù)的使用格式如下:input()函數(shù)<變量>=input("提示字符串")說明:變量和提示字符串都可以省略。用戶的輸入以字符串形式返回給變量。無論用戶輸入的是字符還是數(shù)字,按Enter鍵才算完成輸入,按Enter鍵之前的所有內(nèi)容將作為輸入字符串賦給變量。022.5基本輸入和輸出函數(shù)iinnppuutt(())函函數(shù)數(shù)input()函數(shù)的例子。代碼如下:2.5基本輸入和輸出函數(shù)03Python提供了eval()函數(shù)用來執(zhí)行一個(gè)字符串表達(dá)式,并返回表達(dá)式的計(jì)算結(jié)果。eval()函數(shù)的使用格式如下:eval()函數(shù)<變量>=eval(expression[,globals[,locals]])說明:expression:一個(gè)Python表達(dá)式或compile()函數(shù)返回的代碼對象。globals:可選,必須是字典對象(dictionary)。locals:可選,可以是任意映射對象(map)。2.5基本輸入和輸出函數(shù)eevvaall(())函函數(shù)數(shù)0033eval()函數(shù)一般使用的例子。代碼如下:032.5基本輸入和輸出函數(shù)eevvaall(())函函數(shù)數(shù)eval()函數(shù)和input()函數(shù)結(jié)合使用的例子。代碼如下:本章小結(jié)介紹了Python的基本語法元素,主要內(nèi)容有:程序的格式框架、標(biāo)識符與關(guān)鍵字、數(shù)據(jù)類型、語句概述、基本輸入和輸出函數(shù)等,幫助讀者初步掌握編寫Python程序的基本概念。第3章

Python基本數(shù)據(jù)類型?1

?數(shù)字類型?2

?數(shù)字類型的運(yùn)算?3

?字符串類型?4

?字符串格式化?5

?字符串類型的運(yùn)算?6

?類型判斷和類型之間的轉(zhuǎn)換重點(diǎn)及難點(diǎn)重點(diǎn)是掌握數(shù)字類型、數(shù)字類型的運(yùn)算、字符串類型、字符串格式化、字符串類型的運(yùn)算、類型判斷和類型之間的轉(zhuǎn)換。難點(diǎn)是數(shù)字類型的運(yùn)算、字符串格式化、字符串類型的運(yùn)算。知識導(dǎo)圖01整數(shù)類型的常量有4種表示方式:二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制。3.1數(shù)字類型整整數(shù)數(shù)類類型進(jìn)制運(yùn)算的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:進(jìn)制轉(zhuǎn)換的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:3.1數(shù)字類型02浮點(diǎn)數(shù)類型的數(shù)字由整數(shù)部分與小數(shù)部分組成,是指帶有小數(shù)點(diǎn)的數(shù)字。浮點(diǎn)數(shù)的數(shù)值范圍有限制,小數(shù)精度也有限制,具體限制由不同計(jì)算機(jī)系統(tǒng)決定。浮點(diǎn)數(shù)類型

浮點(diǎn)數(shù)類型的常量有兩種表示:十進(jìn)制形式帶有小數(shù)點(diǎn)和科學(xué)記數(shù)法。十進(jìn)制形式帶有小數(shù)點(diǎn),例如1.2、-1.2??茖W(xué)記數(shù)法使用字母E或者e作為冪的符號,以10作為基數(shù),例如1.2e3、3.6E-3。浮點(diǎn)數(shù)的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:3.1數(shù)字類型03復(fù)數(shù)類型用復(fù)數(shù)類型來表示數(shù)學(xué)中的復(fù)數(shù)。復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,其中虛數(shù)部分不能單獨(dú)存在,它們總是和實(shí)數(shù)部分一起構(gòu)成一個(gè)復(fù)數(shù)。

Python語言的復(fù)數(shù)類型的一般格式如下:

real+imagj復(fù)數(shù)的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:3.2數(shù)字類型的運(yùn)算01Python支持7種數(shù)值運(yùn)算操作符。數(shù)值運(yùn)算操作符數(shù)值運(yùn)算操作符的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:加減乘除運(yùn)算與數(shù)學(xué)含義是一致的。整數(shù)除(//)運(yùn)算的結(jié)果是不大于result3*2與7之商的最大整數(shù)。模(%)運(yùn)算的結(jié)果是0~4區(qū)間的值。3.2數(shù)字類型的運(yùn)算01數(shù)值運(yùn)算操作符與賦值操作符的組合。數(shù)值運(yùn)算操作符數(shù)值運(yùn)算操作符與賦值操作符的組合的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:數(shù)值運(yùn)算操作符與賦值操作符之間不能有空格。3.2數(shù)字類型的運(yùn)算02Python提供了一些與數(shù)值運(yùn)算相關(guān)的函數(shù)。數(shù)值運(yùn)算函數(shù)數(shù)值運(yùn)算函數(shù)的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:用的數(shù)據(jù)類型,在Python

3中,可、3個(gè)單引號、3個(gè)雙引號來創(chuàng)建字不能進(jìn)行元素增加、修改與刪除等3.3字符串類型字符串是Python中最常以使用單引號、雙引號符串。字符串創(chuàng)建后,操作。Python有一些特殊字符可用轉(zhuǎn)義字符(\)進(jìn)行轉(zhuǎn)義。轉(zhuǎn)義字符的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:?013.3字符串類型字符串的索引字符串是字符的有序集合,所以通過位置就可以獲取具體的元素。在Python語言中,字符串中的字符是通過索引來獲取的。字符串的索引的一般格式如下:<字符串變量或字符串>[索引]字符串的索引的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:字符串的切片?023.3字符串類型字符串的切片操作可以從一個(gè)字符串中獲取字符串的一部分。字符串的切片的一般格式如下:<字符串變量或字符串>[start:end:step]字符串的切片的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:%格式符方式013.4

字符串格式化字符串格式化用于解決字符串和變量同時(shí)輸出時(shí)的格式安排問題。在字符串中結(jié)合變量時(shí),需要使用字符串的格式化方式。Python一般采用兩種格式化方式:%格式符方式和format方式。%(1)(name):[變(n量am命e名)]。[flags][width].[precision]typecodeflags:旗幟位。其中,+表示左對齊;-表示右對齊;''表示在正數(shù)左側(cè)添加一個(gè)空格使其和負(fù)數(shù)對齊;0表示在數(shù)字左側(cè)添加一個(gè)0進(jìn)行填充。width:占有寬度。precision:精度。typecode:類型符。字符串的%格式符方式的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:format方式023.4

字符串格式化:[fill][align][sign][#][0][width][,][.precisfill:空白處可以填充的字符。align:對齊方式,其中<表示內(nèi)容左對齊,>表示內(nèi)容右對齊,=表示內(nèi)容右對齊,^表示內(nèi)容居中。sign:有無符號數(shù)字,其中+表示正數(shù)加正號,負(fù)數(shù)加負(fù)號;-表示正數(shù)不變,負(fù)數(shù)加負(fù)號;''表示正數(shù)加空格,負(fù)數(shù)加負(fù)號。#:對于二進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù),如果加上#,則分別顯示0b、0o、0x,否則不顯示。,:為數(shù)字添加分隔符。width:占有寬度。precision:精度。typecode:類型符。字符串格式化的format方式的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:字符串操作符013.5字符串類型的運(yùn)算字符串操作符的例子。代碼如下:◆程序運(yùn)行后的結(jié)果如下:字符串函數(shù)023.5字符串類型的運(yùn)算字符串函數(shù)的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:字符串方法033.5字符串類型的運(yùn)算字符串方法的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:3.6類型判斷和類型之間的轉(zhuǎn)換Python提供了兩種函數(shù)用于判斷一個(gè)變量的數(shù)據(jù)類型。3.6類型判斷和類型之間的轉(zhuǎn)換類型判斷方法的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:3.6類型判斷和類型之間的轉(zhuǎn)換Python提供了一些內(nèi)置函數(shù)用于類型之間的轉(zhuǎn)換3.6類型判斷和類型之間的轉(zhuǎn)換類型之間的轉(zhuǎn)換的例子。代碼如下:程序運(yùn)行后的結(jié)果如下:本章小結(jié)Python中的數(shù)字類型及相關(guān)操作,包括數(shù)值運(yùn)算操作符和數(shù)值運(yùn)算函數(shù)。字符串類型及相關(guān)操作,包括字符串格式化、字符串操作符、字符串處理函數(shù)及相關(guān)函數(shù)。類型判斷和類型之間的轉(zhuǎn)換的基本函數(shù)。第4章程序控制結(jié)構(gòu)?1

?程序的順序結(jié)構(gòu)?2

?程序的分支結(jié)構(gòu)?3

?程序的循環(huán)結(jié)構(gòu)知識點(diǎn)及難點(diǎn)程序的順序結(jié)構(gòu)程序的分支結(jié)構(gòu):單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)和多分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu):for循環(huán)、while循環(huán)、嵌套循環(huán)、循環(huán)控制break和continue難點(diǎn)是多分支結(jié)構(gòu)、嵌套循環(huán)以及循環(huán)控制知識導(dǎo)圖4.1程序的順序結(jié)構(gòu)0102程序流程圖用一系列圖形、流程線和文字說明描述程序的基本操作和控制流程,它是程序分析和過程描述的最基本方式。程序流程圖流程圖的基本元素程序流程圖起止框:表示程序邏輯的開始或結(jié)束;判斷框:表示一個(gè)判斷條件,并根據(jù)判斷結(jié)果選擇不同的執(zhí)行路徑;處理框:表示一組處理過程,對應(yīng)于順序執(zhí)行的程序邏輯;輸入輸出框:表示程序中的數(shù)據(jù)輸入或結(jié)果輸出;注釋框:表示程序的注釋;流向線:表示程序的控制流,以帶箭頭直線或曲線表達(dá)程序的執(zhí)行路徑;連接點(diǎn):表示多個(gè)流程圖的連接方式,常用于將多個(gè)較小流程圖組織成較大流程圖。4.1程序的順序結(jié)構(gòu)03順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),也是最常用的程序結(jié)構(gòu),它是按照語句出現(xiàn)的先后順序自上而下,依次執(zhí)行。程序沿著一個(gè)方向進(jìn)行,具有唯一的入口和出口,按先后順序,先執(zhí)行語句塊A,再執(zhí)行語句塊B。單分支結(jié)構(gòu):if語句if

條件表達(dá)式:語句塊014.2程序的分支結(jié)構(gòu)其功能是先計(jì)算條件表達(dá)式的值,當(dāng)條件表達(dá)式成立時(shí)(非零),則執(zhí)行后面的語句塊,執(zhí)行語句可以是多行,以縮進(jìn)格式書寫來表示同一范圍;當(dāng)條件表達(dá)式不成立時(shí),則跳出分支結(jié)構(gòu),執(zhí)行分支結(jié)構(gòu)后面的代碼。單分支結(jié)構(gòu):if語句?014.2程序的分支結(jié)構(gòu)單分支結(jié)構(gòu):if語句判斷年齡,并根據(jù)判斷結(jié)果輸出是否為成人。注意:在Python語言程序設(shè)計(jì)過程中,代碼的行首用空白(空格或制表符)的縮進(jìn)層次,來決定語句的分組。這意味著同一層次的語句必須有相同的縮進(jìn),這樣相同縮進(jìn)的一組語句稱為一個(gè)塊。雙分支結(jié)構(gòu):if-else語句if條件表達(dá)式:語句塊Aelse:語句塊B?024.2程序的分支結(jié)構(gòu)其功能是先計(jì)算條件表達(dá)式的值,當(dāng)表達(dá)式的值為真時(shí),則執(zhí)行語句塊A;當(dāng)表達(dá)式的值為假時(shí),則執(zhí)行語句塊B。雙分支結(jié)構(gòu):if-else語句?024.2程序的分支結(jié)構(gòu)雙分支結(jié)構(gòu):if-else語句依據(jù)年齡判斷是成年人還是青少年并輸出結(jié)果。多分支結(jié)構(gòu):if-elif-else語句if條件表達(dá)式1:<語句塊1>elif條件表達(dá)式2:<語句塊2>elif條件表達(dá)式3:<語句塊3>...else:<語句塊n>034.2程序的分支結(jié)構(gòu)其功能是先計(jì)算條件表達(dá)式1,當(dāng)表達(dá)式1的值為真時(shí),執(zhí)行語句塊1,否則計(jì)算條件表達(dá)式2,當(dāng)表達(dá)式2的值為真時(shí),執(zhí)行語句塊2,以此類推,如果所有條件表達(dá)式的值都為假,則執(zhí)行語句塊n。多分支結(jié)構(gòu):if-elif-else語句?034.2程序的分支結(jié)構(gòu)多分支結(jié)構(gòu):if-elif-else語句上輸入一個(gè)百分制成績,要求輸出成績等級。90分及以為A,80~89分為B,7270~79分為C,60~69分為D,60分以下為E。4.3程序的循環(huán)結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)Python語言的循環(huán)結(jié)構(gòu)包括兩種:遍歷循環(huán)和無限循環(huán)。遍歷循環(huán)使用保留字for依次提取遍歷結(jié)構(gòu)各元素進(jìn)行處理。無限循環(huán)使用保留字while根據(jù)判斷條件執(zhí)行程序。for循環(huán)for變量in序列:循環(huán)體else:執(zhí)行語句塊014.3程序的循環(huán)結(jié)構(gòu)for...in語句是最常用且結(jié)構(gòu)清晰的一種循環(huán),通過遍歷序列中的每一個(gè)項(xiàng)目來執(zhí)行循環(huán),循環(huán)的次數(shù)取決于序列中項(xiàng)目的個(gè)數(shù)。for循環(huán)?014.3程序的循環(huán)結(jié)構(gòu)for循環(huán)遍歷字符串中的字符并輸出。while循環(huán)while條件表達(dá)式:循環(huán)體else:執(zhí)行語句塊?024.3程序的循環(huán)結(jié)構(gòu)while語句是另一種通過條件表達(dá)式來控制的循環(huán),當(dāng)條件滿足時(shí)重復(fù)執(zhí)行循環(huán)體中的語句,直到條件不滿足時(shí)退出循環(huán)。while語句比for語句更加靈活,通常用于循環(huán)次數(shù)不定的場合。while循環(huán)?024.3程序的循環(huán)結(jié)構(gòu)while循環(huán)求1到10累積,即10的階乘,并輸出累積結(jié)果。嵌套循環(huán)?034.3程序的循環(huán)結(jié)構(gòu)一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。for循環(huán)和while循環(huán)可以相互嵌套,循環(huán)的嵌套可以多層,但是必須保證每一層循環(huán)在邏輯上的完整性。嵌套循環(huán)打印由星號組成的倒三角圖形。*************************循環(huán)控制:break和continue?044.3程序的循環(huán)結(jié)構(gòu)break語句用來終止循環(huán),即使循環(huán)條件表達(dá)式的值為真或者序列還沒被遍歷完,也會立即停止執(zhí)行循環(huán)體的語句。continue語句用來跳過當(dāng)前循環(huán)剩下的語句,轉(zhuǎn)而繼續(xù)進(jìn)行下一輪的循環(huán)。break語句和continue語句都可以用在while和for循環(huán)語句,這兩個(gè)語句通常都必須配合if語句來使用。:break和continue循環(huán)控制模擬用戶登錄。本章小結(jié)程序控制三種結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是程序按照指令順序向下執(zhí)行的方式,分支結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果而選擇不同執(zhí)行路徑的方式,循環(huán)結(jié)構(gòu)是程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)??梢越Y(jié)合break和continue語句改變循環(huán)結(jié)構(gòu)的執(zhí)行流程,break和continue語句對循環(huán)控制的影響是不同的。break語句是結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立;continue語句只結(jié)束本次循環(huán),并不中止整個(gè)循環(huán)的執(zhí)行。第5章

函數(shù)與模塊?1

?函數(shù)的定義與調(diào)用?2

?函數(shù)的參數(shù)傳遞?3

?變量的作用域?4

?代碼模塊化與復(fù)用知識點(diǎn)及難點(diǎn)知識導(dǎo)圖5.1函數(shù)的定義與調(diào)用01函數(shù)就是把具有獨(dú)立功能的代碼塊組成一個(gè)小模塊,并在需要的時(shí)候調(diào)用。在開發(fā)程序時(shí),使用函數(shù)可以提高編程的效率。代碼的重用函數(shù)是帶名字的代碼塊,用于在程序中需多次執(zhí)行同一項(xiàng)任務(wù)時(shí),無須反復(fù)編寫完成該任務(wù)的代碼,而只需調(diào)用能完成該任務(wù)的函數(shù)。一個(gè)大型的任務(wù)可以劃分為多個(gè)小任務(wù),每個(gè)小任務(wù)又可以劃分為幾個(gè)更小的任務(wù)或步驟。函數(shù)的定義5.1函數(shù)的定義與調(diào)用01函數(shù)的定義函數(shù)定義的格式為:def函數(shù)名(<參數(shù)列表>):<函數(shù)體>return<返回值列表>注意事項(xiàng):def是英文單詞define的縮寫。函數(shù)名要求是一個(gè)有效的Python標(biāo)識符。參數(shù)列表中的參數(shù)是形式參數(shù),簡稱為“形參”,多個(gè)參數(shù)之間用逗號隔開,當(dāng)沒有參數(shù)時(shí)也要保留圓括號。5.1函數(shù)的定義與調(diào)用01函數(shù)的定義注意事項(xiàng):函數(shù)體由一行或多行語句組成,在函數(shù)被調(diào)用時(shí)執(zhí)行。函數(shù)如果需要返回值,可以使用return語句和返回值列表來實(shí)現(xiàn)。函數(shù)也可以沒有return語句。函數(shù)結(jié)束后會把控制權(quán)交回給調(diào)用者。5.1函數(shù)的定義與調(diào)用01函數(shù)的定義無參函數(shù)。代碼如下:注意事項(xiàng):pass語句表示什么都不做,用作占位符。pass語句不能省略。5.1函數(shù)的定義與調(diào)用02函數(shù)的調(diào)用

函數(shù)定義后不能直接運(yùn)行,需要經(jīng)過調(diào)用才能運(yùn)行。函數(shù)調(diào)用的格式為:函數(shù)名(<實(shí)際賦值參數(shù)列表>)5.1函數(shù)的定義與調(diào)用02函數(shù)的調(diào)用調(diào)用內(nèi)置函數(shù),實(shí)現(xiàn)對數(shù)值-4先求絕對值再開平方,最后輸出結(jié)果。代碼如下:5.1函數(shù)的定義與調(diào)用02函數(shù)的調(diào)用注意事項(xiàng):abs()函數(shù)是用來求絕對值。sqrt()函數(shù)是用來求平方根。調(diào)用函數(shù)的時(shí)候,傳入的參數(shù)的數(shù)量和參數(shù)的類型要正確。5.1函數(shù)的定義與調(diào)用函函數(shù)數(shù)的的調(diào)調(diào)用用0022

調(diào)用用戶自定義函數(shù),創(chuàng)建兩個(gè)數(shù)相乘并輸出結(jié)果的函數(shù)。代碼如下:5.1函數(shù)的定義與調(diào)用02函數(shù)的調(diào)用注意:可以根據(jù)需要調(diào)用函數(shù)任意次。通過函數(shù)名調(diào)用函數(shù)時(shí),需要對函數(shù)的各個(gè)參數(shù)賦予實(shí)際值,該值可以是實(shí)際數(shù)據(jù),也可以是在調(diào)用函數(shù)前已經(jīng)定義過的變量。函數(shù)的功能與黑盒相似,使用者不需要了解函數(shù)的內(nèi)部實(shí)現(xiàn)原理,只需要了解函數(shù)的輸入和輸出就可以了。5.1函數(shù)的定義與調(diào)用03

如果需要在程序中對函數(shù)的處理結(jié)果做進(jìn)一步處理,則函數(shù)需要有返回值。函數(shù)的返回值

函數(shù)返回值的格式為:

return值5.1函數(shù)的定義與調(diào)用03函數(shù)的返回值注意:return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置,然后繼續(xù)執(zhí)行代碼。return語句可以出現(xiàn)在函數(shù)中的任何位置。return語句是一個(gè)函數(shù)結(jié)束的標(biāo)志,函數(shù)內(nèi)可以有多個(gè)return語句,但只要執(zhí)行一次return語句,整個(gè)函數(shù)就會結(jié)束運(yùn)行。return語句的返回值無類型限制,即可以是任意數(shù)據(jù)類型。5.1函數(shù)的定義與調(diào)用03函數(shù)的返回值注意:return語句的返回值無個(gè)數(shù)限制,即可以用逗號分隔開多個(gè)任意類型的返回值。5.1函數(shù)的定義與調(diào)用函函數(shù)數(shù)的的返返回回值值0033判斷x,y兩數(shù)的大小,輸出較大數(shù)。代碼如下:5.1函數(shù)的定義與調(diào)用函函數(shù)數(shù)的的返返回回值值0033x除以y并輸出余數(shù)和商的函數(shù)。代碼如下:5.2函數(shù)的參數(shù)傳遞01函數(shù)在定義時(shí),參數(shù)列表中參數(shù)是形式參數(shù),簡稱為“形參”。函數(shù)在調(diào)用時(shí),實(shí)際賦值參數(shù)列表中的參數(shù)是實(shí)際參數(shù),簡稱為“實(shí)參”。位置參數(shù)傳遞位置參數(shù)是指必須以正確的順序傳入函數(shù),并且調(diào)用時(shí)的數(shù)量必須和聲明時(shí)一樣的函數(shù)的參數(shù)。015.2

函數(shù)的參數(shù)傳遞位位置置參參數(shù)數(shù)傳傳遞遞定義一個(gè)函數(shù)func(),用于計(jì)算3個(gè)數(shù)的平方和,并返回計(jì)算結(jié)果。代碼如下:5.2

函數(shù)的參數(shù)傳遞02關(guān)鍵字參數(shù)傳遞按照關(guān)鍵字傳遞參數(shù)的函數(shù)的調(diào)用格式為:<函數(shù)名>(<參數(shù)名>=<實(shí)際值>)說明:使用參數(shù)名稱傳遞參數(shù)時(shí)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,即參數(shù)之間的順序可以任意調(diào)整,因?yàn)镻ython的解釋器能夠通過參數(shù)名匹配參數(shù)值。025.2

函數(shù)的參數(shù)傳遞關(guān)關(guān)鍵鍵字字參參數(shù)數(shù)傳傳遞遞定義一個(gè)函數(shù)mult(),用于計(jì)算a除以b,并輸出結(jié)果。代碼如下:5.2

函數(shù)的參數(shù)傳遞03默認(rèn)參數(shù)傳遞帶默認(rèn)值參數(shù)的函數(shù)的定義格式為:def<函數(shù)名>(<非可選參數(shù)列表>,<可選參數(shù)>=<默認(rèn)值>):<函數(shù)體>

return<返回值列表>說明:定義參數(shù)時(shí),非可選參數(shù)在前,默認(rèn)參數(shù)在后。當(dāng)函數(shù)有多個(gè)參數(shù)時(shí),把變化大的參數(shù)放前面,變化小的參數(shù)放后面,變化小的參數(shù)就可以作為默認(rèn)參數(shù)。默認(rèn)參數(shù)必須指向不變的對象。5.2

函數(shù)的參數(shù)傳遞關(guān)關(guān)鍵鍵字字參參數(shù)數(shù)傳傳遞遞0033定義一個(gè)函數(shù)power(),用于求x的n次方,n的默認(rèn)值為2。代碼如下:5.2

函數(shù)的參數(shù)傳遞04不定長參數(shù)傳遞按照不定長參數(shù)傳遞的函數(shù)的定義格式為:def函數(shù)名([formal_args,]*var_args_tuple):<函數(shù)體>return<返回值列表>說明:[formal_args,]為可選參數(shù)。加了星號(*)的變量會存放所有未命名的變量參數(shù)。var_args_tuple是元組。5.2

函數(shù)的參數(shù)傳遞不不定定長長參參數(shù)數(shù)傳傳遞遞0044定義一個(gè)函數(shù)func(*name),用于計(jì)算參數(shù)name的乘積,并輸出結(jié)果。代碼如下:5.3

變量的作用域01變量的作用域即變量的作用范圍(有效范圍),變量按其作用域范圍可分為局部變量和全局變量。在Python中,局部變量僅在函數(shù)內(nèi)部使用,且作用域也在函數(shù)內(nèi)部;而全局變量的作用域可以跨越多個(gè)函數(shù)。局部變量局部變量是在函數(shù)內(nèi)部定義的變量,其作用范圍是函數(shù)的內(nèi)部,即只能在這個(gè)函數(shù)中使用,在函數(shù)的外部是不能使用的。5.3

變量的作用域局局部部變變量量0011定義一個(gè)函數(shù)func(),實(shí)現(xiàn)修改全局變量s的值,并輸出s的初始值、修改值等。代碼如下:5.3

變量的作用域02帶global定義的全局變量的格式為:

global<全局變量>全局變量5.3

變量的作用域全全局局變變量量0022定義一個(gè)函數(shù)func(),實(shí)現(xiàn)修改全局變量s的值,并輸出s的初始值、修改值等。代碼如下:5.4

代碼模塊化與復(fù)用Python模塊化的好處:大大提高了代碼的可維護(hù)性。編寫代碼不必從零開始。使用模塊還可以避免函數(shù)名和變量名沖突。為了避免模塊名沖突,Python引入了按目錄來組織模塊的函數(shù),稱為包(Package)。5.4

代碼模塊化與復(fù)用使用內(nèi)置的sys模塊,編寫一個(gè)func()函數(shù)。代碼如下:本章小結(jié)講解了函數(shù)傳遞的4種方法,分別為位置參數(shù)傳遞、關(guān)鍵字參數(shù)傳遞、默認(rèn)參數(shù)傳遞和不定長參數(shù)傳遞。介紹了變量的作用域,按其作用域范圍可將變量分為局部變量和全局變量。介紹了函數(shù)在代碼復(fù)用中的作用,如何將函數(shù)存儲在被稱為模塊的獨(dú)立文件中,讓程序文件更簡單、更易于理解。最后通過實(shí)例解析的例子理解并實(shí)踐Python中函數(shù)的知識點(diǎn)。第6章組合數(shù)據(jù)類型?1

?集合類型及操作?2

?序列類型及操作?3

?列表類型及操作?4

?元組類型及操作?5

?字典類型及操作知識點(diǎn)及難點(diǎn)知識導(dǎo)圖6.1集合類型及操作01集合是指具有某種特定屬性、具體的或抽象的對象匯聚一起的集體,這些對象稱為該集合的元素或成員。Python集合存儲的元素是唯一,不可重復(fù)的,因此集合經(jīng)常被用于元組或者列表中的元素去重;同時(shí)集合的元素是無序的,因此不能夠通過下標(biāo)索引集合元素。Python包括多種由基本數(shù)據(jù)類型組合而成的數(shù)據(jù)類型,這些組合數(shù)據(jù)類型按照結(jié)構(gòu)又可以劃分為:集合、序列(如列表和元組等)和映射(如字典)三種子類型。集合類型概述操作026.1集合類型及集集合合的的定定義義使用{}創(chuàng)建集合,格式:集合變量名={元素1,元素2,元素3…,元素n}使用關(guān)鍵字set創(chuàng)建可變集合,格式:集合變量名=set(iterable)iterable為可迭代對象,可以是列表、元組、字典、字符串、range對象等。創(chuàng)建可變集合。6.1集合類型及操作02集合的定義使用關(guān)鍵字frozenset創(chuàng)建不可變集合,格式: 集合變量名=frozenset(iterable)iterable為可迭代對象,可以是列表、元組、字典、字符串、range對象等。創(chuàng)建不可變集合。及操作031.子集。Python集合之間也可進(jìn)行數(shù)學(xué)集合運(yùn)算(如并集、交集、差集等),用相應(yīng)的操作符或方法來實(shí)現(xiàn)??梢允褂貌僮鞣?lt;執(zhí)行子集操作,也可使用issubset()方法來完成。6.1集合類型集集合合的的運(yùn)算用操作符<執(zhí)行子集操作。

?

issubset()方法執(zhí)行子集操作。及操作032.并集。一組集合的并集是這些集合的所有元素構(gòu)成的集合??墒褂貌僮鞣鹼執(zhí)行并集操作,也可使用union()方法來完成。6.1集合類型集集合合的的運(yùn)算用操作符|執(zhí)行并集操作。

?

用union()方法執(zhí)行并集操作。及操作033.交集。集合A和B的交集是包含所有既屬于A又屬于B的元素,而沒有其他元素的集合??墒褂貌僮鞣?執(zhí)行交集操作,也可使用intersection()方法來完成。6.1集合類型集集合合的的運(yùn)算用操作符&執(zhí)行交集操作。

?用intersection()方法執(zhí)行交集操作。6.1集合類型及操作034.差集。集合A與B的差集是所有屬于A且不屬于B

的元素構(gòu)成的集合??墒褂貌僮鞣?執(zhí)行差集操作,也可使用difference()方法來完成。集合的運(yùn)算用操作符-執(zhí)行差集操作。

?用difference()方法執(zhí)行差集操作。6.1集合類型及操作035.對稱差。兩個(gè)集合的對稱差是只屬于其中一個(gè)集合,而不屬于另一個(gè)集合的元素組成的集合(兩個(gè)集合合并刪除相同元素,其余元素保留)??墒褂貌僮鞣鸮執(zhí)行對稱差

操作,也可使用symmetric_difference()方法來完成。集合的運(yùn)算用操作符^執(zhí)行對稱差操作。用symmetric_difference()方法執(zhí)行差集操作。6.1集合類型及操作04集合的操作函數(shù)(1)使用add()函數(shù)向集合中添加元素。(2)使用clear()函數(shù)清空集合。(3)使用copy()函數(shù)返回集合的淺復(fù)制。6.1集合類型及操作04集合的操作函數(shù)(4)使用pop()函數(shù)刪除并返回任意的集合元素(如果集合為空,會引發(fā)KeyError異常)。(5)使用remove()函數(shù)刪除集合中的一個(gè)元素(如果元素不存在,會引發(fā)KeyError異常)。6.1集合類型及操作04集合的操作函數(shù)(6)使用discard()函數(shù)刪除集合中的一個(gè)元素(如果元素不存在,則不執(zhí)行任何操作)。(7)使用intersection_update()函數(shù),用一個(gè)集合與另一個(gè)集合的交集來更新這個(gè)集合。操作6.1集合類型及集集合合的的操操0044

(8)使用isd交集,作函數(shù)isjoint()函數(shù)判斷兩個(gè)集合是否有一個(gè)空的如果有則返回True,否則返回Flase。(9)使用issuperset()函數(shù)判斷一個(gè)集合是否包含另一個(gè)集合,如果包含則返回True,否則返回False。6.1集合類型及操作04集合的操作函數(shù)(10)使用difference_update()函數(shù)從一個(gè)集合中刪除另一個(gè)集合的所有元素。6.1集合類型及操作04集合的操作函數(shù)(11)使用symmetric_difference_update()函數(shù),用一個(gè)集合與另一個(gè)集合的對稱差來更新這個(gè)集合。序列類型概述016.2序列類型及操作序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu),是通過對數(shù)據(jù)元素進(jìn)行編號并將它們組織在一起的集合。序列成員是有序排列的,序列為每個(gè)元素分配了一個(gè)數(shù)字,這個(gè)數(shù)字代表它的位置,也叫索引或下標(biāo)。序列都可以進(jìn)行的操作包括索引、切片、加、乘等。Python有6種內(nèi)置的序列,分別為列表、元組、字符串、Unicode字符串、buffer對象、xrange對象。及操作6.2序列類型0022

序列1、索引的通用操作序列為每個(gè)元素分配了一個(gè)序號,即元素的位置,稱為索引。正數(shù)第一個(gè)元素的索引為0,正數(shù)第二個(gè)元素的索引為1,倒數(shù)第一個(gè)元素的索引為-1,以此類推。序列的通用操作026.2序列類型及操作2、切片可以使用切片來截取序列中的任何部分,從而得到一個(gè)新序列。序列切片格式:序列名[start_index:end_index:step]表示從索引start_index對應(yīng)的元素開始每step個(gè)元素取出來一個(gè),直到取到索引end_index(不含end_index)對應(yīng)的元素前結(jié)束,如果step為空,則默認(rèn)為1。6.2序列類型及操作0022

序列的通用操作3、加序列連接操作,只有相同類型的序列才能進(jìn)行連接操作,此操作實(shí)質(zhì)上是創(chuàng)建了一個(gè)新序列并將原序列中的元素和新元素依次復(fù)制到新序列的內(nèi)存空間中。操作026.2序列類型及操序列的通用作4、乘序列重復(fù)操作,用序列乘數(shù)字,會產(chǎn)生新的序列。新的序列是原序列的重復(fù)。序列的通用操作026.2序列類型及操作5、成員資格使用in運(yùn)算符(布爾運(yùn)算符)可以檢查一個(gè)元素是否在序列中,然后返回布爾值True或False。6.2序列類型及操0022

序列的通用作操作6、內(nèi)建函數(shù)len()函數(shù)用于返回序列中的元素個(gè)數(shù),max()、min()函數(shù)用于返回序列中的最大或最小元素。6.2序列類型及操作0022

序列的通用操作7、迭代可以使用內(nèi)建的zip()函數(shù)并行迭代,zip()函數(shù)可以將兩個(gè)序列壓縮在一起,返回一個(gè)元組的列表。列表類型及操作1、列表的定義6.3列表類型及操作列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。列表變量名=[元素1,元素2,元素3,…,元素n-1,元素n](1)通過賦值創(chuàng)建列表列表類型及操作1、列表的定義6.3列表類型及操作列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。(2)使用list()函數(shù)創(chuàng)建列表

列表變量名=list(iterable)6.3列表類型及操作列表類型及操作2、列表的操作函數(shù)列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。其中append()函數(shù)可實(shí)現(xiàn)向列表的尾部追加一個(gè)元素;extend()函數(shù)用于將另一個(gè)列表中的所有元素追加到當(dāng)前列表的尾部;insert()函數(shù)能夠在列表任意指定位置插入一個(gè)元素。3個(gè)函數(shù)進(jìn)行的操作都

屬于原地操作,不影響列表對象在內(nèi)存中的起始地址。(1)列表元素的添加函數(shù):append()、

extend()、insert()添加元素016.3列表類型及操作插入元素026.3列表類型及操作運(yùn)算符+和*實(shí)現(xiàn)在列表中增加元素036.3列表類型及操作6.3列表類型及操作列表類型及操作2、列表的操作函數(shù)列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。其中pop()函數(shù)用于刪除并返回指定位置(默認(rèn)是最后一個(gè))的元素;remove()函數(shù)用于刪除列表中第一個(gè)值與指定值相等的元素;

clear()函數(shù)用于清空列表。這3個(gè)函數(shù)進(jìn)行的操作屬于原地操作,執(zhí)行后不影響列表對象的內(nèi)存地址。另外,也可以使用del命令刪除列表中指定位置的元素,這也屬于原地操作。(2)列表元素的刪除函數(shù):pop()、

remove()、clear()、del6.3列表類型及操作列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。2、列表的操作函數(shù)列表類型及操作(3)列表元素的統(tǒng)計(jì)函數(shù):count()、index()count()函數(shù)用于返回列表中指定元素出現(xiàn)的次數(shù);index()函數(shù)用于返回指定元素在列表中首次出現(xiàn)的位置,如果該元素不在列表中則拋出異常。除此之外,成員測試運(yùn)算符in也可以用于測試列表中是否存在某個(gè)元素。6.3列表類型及操作列表類型及操作2、列表的操作函數(shù)列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。sort()函數(shù)和reverse()函數(shù)可以對列表進(jìn)行原地排序和逆序排序,即用處理后的數(shù)據(jù)替換原來的數(shù)據(jù),原來的順序丟失。如果不想丟失

原來的順序,可以使用sorted()函數(shù)和reversed()函數(shù)來排序。其中

sorted()函數(shù)返回新列表,sorted()函數(shù)默認(rèn)進(jìn)行升序排序,當(dāng)參數(shù)

reverse=True時(shí)可返回逆序排列的列表。(4)列表元素的排序函數(shù):sort()、sorted()、reverse()6.3列表類型及操作列表類型及操作3、列表的刪除列表是包含若干元素的有序連續(xù)內(nèi)存空間。在形式上,列表的所有元素放在一對方括號[]中,相鄰元素之間使用英文逗號分隔。del不但可以用于刪除列表中的元素,也可以刪除列表。當(dāng)一個(gè)列表不再使用時(shí),可以使用del將其刪除。使用del刪除對象后,

Python會在恰當(dāng)?shù)臅r(shí)機(jī)調(diào)用垃圾回收機(jī)制來

釋放內(nèi)存。在必要的時(shí)候也可以導(dǎo)入Python的gc標(biāo)準(zhǔn)庫,使用其中的gc.collect()函數(shù)立刻啟動垃圾回收機(jī)制來釋放內(nèi)存。6.4元組類型及操作1、元組概述元組是Python的另一個(gè)重要的序列結(jié)構(gòu)。元組可以理解為由常量元素組成的序列,其元素的值是不可改變的,其內(nèi)部的元素可以是不同數(shù)據(jù)類型。形式上,元組使用小括號而列表使用中括號。元組與列表的區(qū)別元組中的元素不能被修改,元組中元素的值不能被修改、添加或刪除;元組在內(nèi)部實(shí)現(xiàn)上不允許修改其元素的值,從而使得代碼更加安全,而使用列表則很難保證這一點(diǎn)。元組的訪問速度比列表更快。如果定義一系列常量值,主要用途僅是對它們進(jìn)行遍歷或其他類似操作,而不需要對其元素進(jìn)行任何修改,那么一般建議使用元組而不用列表。6.4元組類型及操作2、元組的創(chuàng)建(1)通過賦值創(chuàng)建元組2、元組的創(chuàng)(2)使用tuple()函數(shù)創(chuàng)建元組6.4元組類型及操作3、元組的操作函數(shù)元組屬于不可變(Immutable)序列,不可以直接修改元組中元素的值,也無法直接為元組增加或刪除元素。元組沒有提供append()、extend()和insert()等方法,所以無法直接向元組中添加元素,但可以通過連接多個(gè)元組的方式向元組中添加新元素。同樣,元組沒有提供remove()和pop()方法,也

不支持對元組元素進(jìn)行del操作,因此不能從元組中刪除元素,只能使用del命令刪除整個(gè)元組。6.4元組類型及操作3、元組的操作函數(shù)(1)添加元素3、元組的操作函數(shù)(2)刪除元素6.4元組類型及操作4、元組的刪除(1)刪除元組對象字典概述016.5字典類型及操作字典是一種存放具有映射關(guān)系的數(shù)據(jù)結(jié)構(gòu)。這種結(jié)構(gòu)相當(dāng)于保存了兩組數(shù)據(jù),其中一組數(shù)據(jù)是關(guān)鍵數(shù)據(jù),被稱為

key;另一組數(shù)據(jù)可通過key來訪問,被稱為value。字典是一種可變?nèi)萜髂P?,且可存儲任意類型對象,具有極快的查找速度。字典概述016.5字典類型及操作字典的基本格式:字典的每個(gè)鍵值對(key:value)中,key與value之間用英文冒號分隔;每個(gè)鍵值對之間用英文逗號分隔;整個(gè)字典包括在花括號中。d={key1:value1,key2:value2}字典的鍵(key)必須不可變(如字符串、數(shù)字、元組),值(value)可以為任意數(shù)據(jù)類型。字典是無序的,每次輸出,其順序都可能發(fā)生改變。字典概述016.5字典類型及操作字典輸出,代碼如下:字典的創(chuàng)建?026.5字典類型及操作使用賦值運(yùn)算符=可以將一個(gè)字典常量賦值給一個(gè)變量,從而創(chuàng)建一個(gè)字典變量。字典常量以花括號界定,花括號中應(yīng)包含多個(gè)鍵值對(key:value)。key與value之間用英文冒號隔開;多個(gè)鍵值對之間用英文逗號隔開。

aDict={'server':'db','database':'mysql'}可以使用內(nèi)置類dict以不同形式創(chuàng)建字典。?0022

字典的創(chuàng)建字典的訪問?036.5字典類型及操作(1)通過鍵訪問對應(yīng)的值。格式:字典變量名['鍵']列表通過其索引訪問元素,字典則通過鍵訪問對應(yīng)的值,形式類似列表那樣用方括號,只不過用鍵替代了索引。?0033

字典的訪問(2)按鍵key訪問,推薦get()方法。格式:dict.get(key,default=None)dict:字典變量;key:字典中要查找的鍵;default:如果指定鍵的值不存在,則返回該默認(rèn)值。如果訪問字典中不存在的鍵,則程序?qū)伋霎惓?。作函?shù)?046.5字典類型及操字典的操作可以使用dir(dict)來查看字典的內(nèi)置函數(shù)。在交互式解釋器中輸入dir(dict)指令。(1)update()可以將一個(gè)字典中的值更新到另一個(gè)字典中。語法:dict.update(dict2)參數(shù):dict2,添加到指定字典dict里的字典。字典的操作函數(shù)?046.5字典類型及操作(2)keys()函數(shù)能夠以列表形式返回一個(gè)字典中的所有的鍵。語法:dict.keys()(3)values()函數(shù)能夠以列表形式返回字典中的所有的值。語法:dict.values()字典的操作函數(shù)?046.5字典類型及操作(4)items()函數(shù)能夠以列表形式返回可遍歷的(key,value)元組數(shù)組。語法:dict.items()。6.5字典類型及操作?0044

字典的操作函數(shù)(5)fromkeys()函數(shù)用于創(chuàng)建一個(gè)新字典,用序列seq中的元素作為字典的鍵、value作為字典對應(yīng)鍵的初始值。語法:dict.fromkeys(seq[,values])seq:字典鍵值列表;

value:可選參數(shù),設(shè)置鍵序列(seq)的值。字典的刪除?056.5字典類型及操作del命令同樣可以用于刪除字典對象。本章小結(jié)Python的組合數(shù)據(jù)類型,包括集合、列表、元組以及字典。集合類型分為可變與不可變兩種。集合元素沒有索引且無次序、不可重復(fù),因此可作為一種簡單高效的元素去重方式。序列數(shù)據(jù)類型包括列表、元組和字符。所有序列都支持迭代,序列索引為非負(fù)整數(shù)的有序?qū)ο蠹稀A斜砼c元組均為容器類序列,可由一組任意類型的值按照一定順序組合而成。列表為可變序列,而元組和字符為不可變序列。字典為Python映射數(shù)據(jù)類型,所有字典成員均以鍵值對形式組織數(shù)據(jù),鍵必須是唯一且不可變、可哈希的數(shù)據(jù),但值可以是任意類型。第7章文件操作和數(shù)據(jù)格式化?1

?文件的操作?2

?數(shù)據(jù)的維度?3

?一維數(shù)據(jù)的處理?4

?二維數(shù)據(jù)的處理知識點(diǎn)及難點(diǎn)文件的操作、數(shù)據(jù)的維度、一維數(shù)據(jù)的處理,以及二維數(shù)據(jù)的處理難點(diǎn)是文件的操作和二維數(shù)據(jù)的處理知識導(dǎo)圖7.1文件的操作01Python提供了一個(gè)內(nèi)置的open()函數(shù),該函數(shù)用于打開指定文件。語法格式如下:文件的打開file

object

=

open(file_name

[,mode][,

bufferin打開文件。代碼如下:file

object

=

open(file_name

[,mode][,

buffering])open()函數(shù)可以打開文本文件或二進(jìn)制文件;file_name是一個(gè)包含了要訪問的文件名的字符串值;mode決定了打開文件的模式,如只讀、寫入、追加等。這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問模式為r表示只讀;w表示寫入;+表示如果庫中不存在文件,將創(chuàng)建一個(gè)文件;b表示二進(jìn)制;a表示追加。如果buffering的值被設(shè)為0,不會有寄存;如果buffering的值取1,訪問文件時(shí)會寄存行;如果將buffering的值設(shè)為大于1的整數(shù),表明該整數(shù)就是寄存區(qū)的緩沖大??;如果buffering取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)的值。7.1文件的操作02執(zhí)行open()函數(shù)之后,將返回一個(gè)file對象,該文件對象的屬性保存著該文件的各種信息。file對象的屬性file對象的屬性:027.1文件的操作ffiillee對對象象的的屬屬性性7.1文件的操作03file對象的操作函數(shù)1.close()函數(shù)用于刷新緩沖區(qū)里任何還沒寫入的信息,并關(guān)閉該文件,這之后便不能再進(jìn)行寫入。當(dāng)一個(gè)文件對象的引用被重新指定給另一個(gè)文件時(shí),會關(guān)閉之前的文件。用close()函數(shù)關(guān)閉文件是一個(gè)很好的習(xí)慣。語法:fileObject.close()7.1文件的操作031.close()函數(shù)file對象的操作函數(shù)7.1文件的操作03file對象的操作函數(shù)2.read()函數(shù)用于從一個(gè)打開的文件中讀取一個(gè)字符串。需要重點(diǎn)注意的是:Python字符串也可以是二

進(jìn)制數(shù)據(jù),而不僅僅是文字。語法:fileObject.read([count])此處被傳遞的參數(shù)是要從已打開文件中讀取的字節(jié)計(jì)數(shù)。該方法從文件的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取內(nèi)容,甚至直到文件的末尾。7.1文件的操作ffiillee對對象象的的操操作作函函數(shù)數(shù)0033

?2.read()函數(shù)7.1文件的操作033.readline()函數(shù)file對象的操作函數(shù)會從文件中讀取單獨(dú)的一行。如果返回一個(gè)空字符串,說明已經(jīng)讀取到最后一行。7.1文件的操作03file對象的操作函數(shù)4.readlines()函數(shù)以列表形式返回該文件中包含的所有行,列表一項(xiàng)表示文件一行。如果設(shè)置可選參數(shù)sizehint,則可以讀取指定長度的字節(jié),按行分割。7.1文件的操作03file對象的操作函數(shù)5.write()函數(shù)將任何字符串寫入一個(gè)打開的文件。需要重點(diǎn)注意的是:字符串可以是二進(jìn)制數(shù)據(jù),而不僅是文字。write()不會在字符串的結(jié)尾添加換行符。語法:fileObject.write(string)被傳遞的參數(shù)是要被寫入已打開文件的內(nèi)容。035.write()函數(shù)7.1文件的操作ffiillee對對象象的的操操作作函函數(shù)數(shù)創(chuàng)建a1.txt文件,并將收到的內(nèi)容寫入該文件,最終關(guān)閉文件。打

開a1.txt文件,內(nèi)容如圖所示。7.1文件的操作036.remove()函數(shù)file對象的操作函數(shù)可以使用os.remove()函數(shù)刪除文件,使用時(shí)需要提供要刪除的文件名作為參數(shù)。語法:os.remove(file_name)017.2數(shù)據(jù)的維度為了利用與開發(fā)數(shù)據(jù),需要從不同的維度對數(shù)據(jù)進(jìn)行組織與刻畫,從而更好地描述數(shù)據(jù)之間的關(guān)系與邏輯。按照數(shù)據(jù)之間的關(guān)系,可以將數(shù)據(jù)分為:一維數(shù)據(jù)、二維數(shù)據(jù)和高維數(shù)據(jù)。一維數(shù)據(jù)一維數(shù)據(jù)的數(shù)據(jù)成員平等,相互之間不存在包含或者從屬關(guān)系,這類數(shù)據(jù)通常采用直線方式加以組織。二維數(shù)據(jù)?027.2數(shù)據(jù)的維度二維數(shù)據(jù)由具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)構(gòu)成。二維表格、數(shù)學(xué)中的矩陣均為二維數(shù)據(jù)的常見組織形式。Python數(shù)據(jù)分析中常用嵌套列表、Numpy二維數(shù)組等結(jié)構(gòu)作為二維數(shù)據(jù)的組織形式。高維數(shù)據(jù)?037.2數(shù)據(jù)的維度隨著大數(shù)據(jù)時(shí)代的到來,互聯(lián)網(wǎng)及社會各個(gè)領(lǐng)域源源不斷地產(chǎn)生海量數(shù)據(jù),如證券市場交易數(shù)據(jù)、電子商務(wù)數(shù)據(jù)、社交媒體數(shù)據(jù)、多媒體數(shù)據(jù)、衛(wèi)星遙感數(shù)據(jù)等。這些數(shù)據(jù)特征復(fù)雜、形式多樣,需要更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),更多更高維度地描述數(shù)據(jù)特征。高維數(shù)據(jù)關(guān)系復(fù)雜,可采用多層嵌套低維度率數(shù)據(jù)結(jié)構(gòu)的組織形式來表示。Python常用嵌套列表、

Numpy、Pandas等來處理高維數(shù)據(jù)。7.3一維數(shù)據(jù)的處理一維數(shù)據(jù)同樣也有多種文件存儲格式,為了明確數(shù)據(jù)邊界,可以采用特殊字符對數(shù)據(jù)進(jìn)行分隔。通常包括以下5種方法。一維數(shù)據(jù)結(jié)構(gòu)017.3一維數(shù)據(jù)的處理一維數(shù)據(jù)結(jié)構(gòu)空格分隔法逗號分隔法換行符分隔法制表符分隔法分號分隔法7.3一維數(shù)據(jù)的處理逗號分隔法的通常使用CSV作為文件存儲格式。CSV以純文本形式存儲表格數(shù)據(jù)(包括數(shù)字和文本),這意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件在Windows平臺默認(rèn)的打開程序是Excel,但是它的本質(zhì)是一個(gè)文本文件。7.3一維數(shù)據(jù)的處理一維數(shù)據(jù)的文件讀取:對一維數(shù)據(jù)進(jìn)行處理時(shí),需要先從CSV格式

文件讀入一維數(shù)據(jù),并將其表示為列表對象。需要注意,從CSV文件中獲得內(nèi)容時(shí),每一行最后一個(gè)元素后面有一個(gè)換行符。使用split()方法以逗號對一維數(shù)據(jù)進(jìn)行分割。一維數(shù)據(jù)的操作027.3一維數(shù)據(jù)的處理7.3一維數(shù)據(jù)的處理7.4二維數(shù)據(jù)的處理Python二維數(shù)據(jù)可由一維數(shù)據(jù)結(jié)構(gòu)嵌套組合而成,采用二維列表的組織形式,以及CSV、Excel等文件格式存儲。二維列表,即數(shù)據(jù)本身是一個(gè)列表,里面的元素又是一個(gè)列表,外層的每一個(gè)元素可以代表二維數(shù)據(jù)內(nèi)層的一行或者一列。二維數(shù)據(jù)結(jié)構(gòu)017.4二維數(shù)據(jù)的處理7.4二維數(shù)據(jù)的處理7.4二維數(shù)據(jù)的處理list

*

n相當(dāng)于n個(gè)list的淺復(fù)制的連接。python中淺復(fù)制指并沒有實(shí)際復(fù)制被復(fù)制的對象,而只是復(fù)制了這個(gè)對象的引用。mylist[1]、mylist[2]僅為

mylist[0]的淺復(fù)制(引用),對mylist[0][1]的賦值,即為對mylist[1][1]、mylist[2][1]的賦值。7.4二維數(shù)據(jù)的處理7.4二維數(shù)據(jù)的處理[[]]是一個(gè)含有一個(gè)空列表元素的列表,所以[[]]*3表示3個(gè)指向這個(gè)空列表元素的引用,修改任何一個(gè)元素都會改變整個(gè)列表。所以此時(shí)需要用另外一種方式進(jìn)行創(chuàng)建多維數(shù)組,以免淺復(fù)制。7.4二維數(shù)據(jù)的處理二維數(shù)據(jù)的文件讀取對二維數(shù)據(jù)進(jìn)行處理時(shí),可先從CSV格式文件讀入二維數(shù)據(jù),并將其表示為二維列表,再對其進(jìn)行處理。下面的例子是將1.csv文件中的數(shù)據(jù)追加到二維列表ls中。二維數(shù)據(jù)的操作027.4二維數(shù)據(jù)的處理7.4二維數(shù)據(jù)的處理本章小結(jié)首先介紹文件的基本使用方法,包括文件的打開、關(guān)閉、讀取和寫入。進(jìn)一步圍繞數(shù)據(jù)的維度講解了一維數(shù)據(jù)、二維數(shù)據(jù)和高維數(shù)據(jù)的概念,以及一維、二維數(shù)據(jù)的表示、存儲和操作。最后通過一些實(shí)例幫助讀者理解文件處理的基本方法。第8章面向?qū)ο蟪绦蛟O(shè)計(jì)?1

?Python的面向?qū)ο?2

?定義和使用類?3

?類與對象的屬性和方法?4

?繼承與派生知識點(diǎn)及難點(diǎn)Python的面向?qū)ο蠖x和使用類類與對象的屬性和方法繼承與派生難點(diǎn)是繼承與派生知識導(dǎo)圖8.1

Python的面向?qū)ο驪ython的類類也是一種數(shù)據(jù)結(jié)構(gòu)01面向?qū)ο缶幊叹哂蟹庋b性、繼承性以及多態(tài)性三大特征。在現(xiàn)實(shí)世界中的同一類事物具有相同的特征和動作。在前面章節(jié)中學(xué)習(xí)過的基礎(chǔ)數(shù)據(jù)類型,它們也都是類Python的類例8.1使用type()函數(shù)返回變量的對象類型。8.1

Python的面向?qū)ο驪ython中的對象對象是通過類定義的數(shù)據(jù)結(jié)構(gòu)實(shí)例02對象(object)就是具有類屬性和方法的具體事物,它由類來進(jìn)行創(chuàng)建。例如在Python中創(chuàng)建兩個(gè)列表list1和list2,這兩個(gè)列表就是對象,是由列表類(list)創(chuàng)建出來的兩個(gè)實(shí)例,它們都共同擁有列表類的屬性和方法。8.2定義和使用類定義類class類名:<語句1>…<語句n>01在class后面定義類的名稱,類名通常以大寫字母開頭。類中定義的語句主要是函數(shù)的定義,但是也允許是其他語句。類的定義與函數(shù)的定義類似,必須先定義才能使用。定義類例8.2定義一個(gè)大學(xué)生類。8.2定義和使用類使用類實(shí)例名=類名()02實(shí)例名與變量命名類似,類名必須與定義的類名完全一致。用該類使用類?

例8.3使用例8.2的方法定義一個(gè)大學(xué)生類,再使創(chuàng)建實(shí)例。通過id()函數(shù)可以獲取兩個(gè)實(shí)例的內(nèi)存地址(內(nèi)存地址不是固定的,在不同機(jī)器上運(yùn)行會有不同的結(jié)果)8.3類與對象的屬性和方法屬性實(shí)例屬性可以通過

init

()方法來綁定(init前后必須有兩條下畫線)。如果把屬性定義在類中(稱為類屬性),類的所有實(shí)例都可以訪問這種屬性。01不管是通過構(gòu)造方法綁定或者是外部直接添加的屬性,它們都與實(shí)例緊密相關(guān),稱為實(shí)例屬性。實(shí)例屬性屬于各個(gè)實(shí)例所有,相互獨(dú)立;而類屬性只有一個(gè),創(chuàng)建的實(shí)例都共用這個(gè)類屬性,一旦類屬性改變就會影響所有的實(shí)例。當(dāng)實(shí)例屬性和類屬性重名時(shí),實(shí)例屬性優(yōu)先級更高,它將屏蔽掉對類屬性的訪問。屬性?

例8.4定義一個(gè)包含學(xué)號、姓名、性別等實(shí)例屬性的大學(xué)生類UniversityStudent,并使用該類創(chuàng)建實(shí)例。屬性?

例8.5修改UniversityStudent類,把id變?yōu)樗接袑傩?。如果要限制類中的某些屬性,不讓在類外部直接訪問這些屬性,那么可以在屬性的名稱前加上兩條下畫線

,使其變成一個(gè)私有屬性,只能在類內(nèi)部訪問。屬性?

例8.6修改大學(xué)生類UniversityStudent,添加一個(gè)類屬性count,用來統(tǒng)計(jì)一共創(chuàng)建了多少個(gè)實(shí)例。屬性例8.7修改大學(xué)生類UniversityStudent,添加一個(gè)類屬性school,在創(chuàng)建的實(shí)例中也動態(tài)綁定一個(gè)實(shí)例屬性school。8.3類與對象的屬性和方法方法類的方法通過函數(shù)定義的方式實(shí)現(xiàn),包括實(shí)例方法、類方法、靜態(tài)方法3種比較常見的類型。02實(shí)例方法中的第一個(gè)參數(shù)必須是實(shí)例,該參數(shù)名一般約定為self,可以通過它來傳遞實(shí)例的屬性和方法。類方法使用@classmethod裝飾器來聲明,第一個(gè)參數(shù)必須是類本身,該參數(shù)名一般約定為cls,通過它來傳遞類的屬性和方法。靜態(tài)方法是指類中無須實(shí)例參與即可調(diào)用的方法,使用@staticmethod裝飾器來聲明,定義時(shí)不需要self和cls參數(shù),調(diào)用時(shí)可以直接通過類名來訪問。方法例8.8定義一個(gè)大學(xué)生類,該類擁有學(xué)號、姓名、課程3個(gè)實(shí)例屬性,包含選課和顯示選修課程兩個(gè)實(shí)例方法。方法例8.9定義一個(gè)大學(xué)生類,該類擁有姓名實(shí)例屬性和學(xué)生數(shù)類屬性,包含一個(gè)顯示學(xué)生總數(shù)的類方法。編寫一個(gè)類,使用靜態(tài)方法實(shí)現(xiàn)對性別和成績的方法例8.10合法性檢查。方法例8.11編寫一個(gè)UniversityStudent類,包含學(xué)號和姓名兩個(gè)私有屬性,采用get()和set()方法進(jìn)行訪問控制。8.4繼承與派生繼承與派生類的定義

class派生類名(基類名):<語句1>…<語句n>01通過繼承創(chuàng)建的新類稱為子類或派生類,被繼承的類稱為基類、父類或超類。Python語言中的所有類都繼承了object類,所以object類是最頂層的基類。如果在派生類中需要基類的構(gòu)造方法,就需要顯式地調(diào)用基類的構(gòu)造方法,或者不重寫基類的構(gòu)造方法。優(yōu)先在本類中查找調(diào)用的方法,找不到再去基類中找。繼承與派生類的定義例8.12編寫一個(gè)汽車類和公交車類,汽車類包含品牌和顏色兩個(gè)屬性以及啟動和停止兩個(gè)方法,公交車類繼承汽車類,同時(shí)又有自己的收費(fèi)方法。類,分別創(chuàng)建3個(gè)類的實(shí)繼承與派生類的定義例8.13A是父類,B是A的子類,C是B的子例,并判斷它們的類型。isinstance()函數(shù)既可以判斷一個(gè)變量是否是某種數(shù)據(jù)類型,也可以判斷一個(gè)對象是否是某個(gè)類的實(shí)例,而且會考慮繼承關(guān)系,認(rèn)為子類的實(shí)例化對象和其父類相同。8.4繼承與派生super()函數(shù)和方法重載super()函數(shù)的主要作用是調(diào)用父類的方法。在繼承關(guān)系中,當(dāng)子類實(shí)現(xiàn)了與父類同名的方法,稱為方法重載。02如果存在方法重載,那么子類的實(shí)例默認(rèn)調(diào)用的是子類的覆蓋方法,但是可以通過super()函數(shù)來指定調(diào)用父類的原有方法。當(dāng)有多個(gè)子類重載了父類的方法,這種情況在面向?qū)ο笾杏址Q為多態(tài)。super()函數(shù)和方法重載例8.14編寫一個(gè)汽車類和一個(gè)公交車類,汽車類包含品牌和顏色兩個(gè)屬性以及一個(gè)顯示方法,公交車類繼承汽車類,并重載構(gòu)造方法和顯示方法。super()函數(shù)和方法重載例8.15編寫一個(gè)動物類,定義一個(gè)用來顯示動物叫聲的方法,再編寫狗和貓兩個(gè)子類,并對父類的方法進(jìn)行重載。8.4繼承與派生多重繼承class派生類名(基類名1,基類名2,…):<語句1>…<語句n>03多重繼承是指一個(gè)子類可以繼承多個(gè)父類,例如有類A、B和C,C同時(shí)繼承了類A和類B,此時(shí)類C可以使用類A和類B中的屬性與方法。如果不同的父類中存在相同的方法名稱,子類對象調(diào)用的時(shí)候會根據(jù)MRO(Method

Resolution

Order,方法解析順序)進(jìn)行查找,一旦找到對應(yīng)方法,則查找馬上返回。多重繼承◆例8.16編寫一個(gè)公交車類,同時(shí)繼承汽車類和費(fèi)用類。多重繼

溫馨提示

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

最新文檔

評論

0/150

提交評論