版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、« Python程序設(shè)計(jì)教學(xué)大綱安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院20 15 年 10 月課程性質(zhì)與設(shè)置目的要求(前言)« Python程序設(shè)計(jì)課程是計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院各專(zhuān)業(yè)的專(zhuān)業(yè)選修課程。 Python是一門(mén)開(kāi)源的高級(jí)動(dòng)態(tài)編程語(yǔ)言,支持命令式編程、函數(shù)式編程、面向?qū)ο蟪绦蛟O(shè)計(jì),語(yǔ)法簡(jiǎn)潔清晰,并且擁有大量功能豐富而強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和擴(kuò)展庫(kù)。本課程將從Python語(yǔ)言的實(shí)現(xiàn)機(jī)制入手,結(jié)合示例程序和上機(jī)實(shí)驗(yàn),較為系統(tǒng) 地介紹Python語(yǔ)言的主要特征和編程技術(shù)。設(shè)置本課程的目的是:使學(xué)習(xí)者在全面了解 Python技術(shù)歷史、現(xiàn)狀與發(fā)展 趨勢(shì)的基礎(chǔ)上,系統(tǒng)掌握 Python基本概念、編程思
2、想以及程序設(shè)計(jì)技術(shù),具備 熟練的Python編程技能和面向?qū)ο筌浖O(shè)計(jì)技術(shù)思想,完成本課程的學(xué)習(xí)后能 夠熟練地綜合應(yīng)用Python技術(shù)和面向?qū)ο蟮乃枷刖帉?xiě)程序解決現(xiàn)實(shí)生活中的問(wèn) 題,最終提高程序設(shè)計(jì)水平和計(jì)算機(jī)應(yīng)用能力,從而能勝任企業(yè)軟件研發(fā)以及科研院所的研發(fā)、教學(xué)任務(wù)。學(xué)習(xí)本課程的要求是:學(xué)習(xí)者應(yīng) 理解Python的編程模式,熟練運(yùn)用Python 列表、元組、字典、集合等基本數(shù)據(jù)類(lèi)型以及相關(guān)列表推導(dǎo)式、切片等特性來(lái)解 決實(shí)際問(wèn)題,熟練掌握Python分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)設(shè)計(jì)以及類(lèi)的設(shè)計(jì)與 使用,熟練使用正則表達(dá)式處理字符串,同時(shí)掌握不同領(lǐng)域的Python擴(kuò)展模塊,并能夠解決實(shí)際問(wèn)題。先修
3、課程要求:無(wú)本課程計(jì)劃34學(xué)時(shí),2學(xué)分。選用教材:董付國(guó).Python程序設(shè)計(jì)(第2版).北京:清華大學(xué)出版社,2016.5.考核方法:考查教學(xué)進(jìn)程安排表:周次學(xué)時(shí)數(shù)教學(xué) 主 要 內(nèi) 容教學(xué)劃、節(jié)備注13Python的安裝與使用Python擴(kuò)展庫(kù)的管理Python中的數(shù)據(jù)類(lèi)型講課23Python中的內(nèi)置函數(shù)、基本輸入輸出Python代碼編寫(xiě)規(guī)范Python文件名和程序運(yùn)行講課33Python中的列表使用講課43Python中的元組、字典及集合的使用講課53選擇和循環(huán)結(jié)構(gòu)講課63字符串和正則表達(dá)式講課73函數(shù)的設(shè)計(jì)與使用講課83類(lèi)的定義與使用類(lèi)的方法和屬性講課93文本文件的基本操作二進(jìn)制文件操作
4、文件操作和目錄操作講課103異常處理結(jié)構(gòu)與程序調(diào)試GUI編程講課113+1網(wǎng)絡(luò)程序設(shè)計(jì)多線程編程課程隨堂測(cè)試講課+ 測(cè)試第一章基礎(chǔ)知識(shí)一、學(xué)習(xí)目的Python語(yǔ)言的發(fā)展過(guò)程、安裝及簡(jiǎn)單使用;Python程序設(shè)計(jì)中的基本知識(shí);Python代碼的編寫(xiě)規(guī)范;Python文件名的要求;Python程序的運(yùn)行方式;編寫(xiě)自己的包以及基 本示例。本章計(jì)劃6學(xué)時(shí)。二、課程內(nèi)容1.0 Python是一種怎樣的語(yǔ)言Python是一門(mén)跨平臺(tái)、開(kāi)源、免費(fèi)的解釋型高級(jí)動(dòng)態(tài)編程語(yǔ)言,同時(shí)也支持偽編譯將Python源程序轉(zhuǎn)換為字節(jié)碼來(lái)優(yōu)化程序和提高運(yùn)行速度。Python支持命令式編程、函數(shù)式編程,完全支持面向?qū)ο蟪绦蛟O(shè)計(jì),
5、語(yǔ)法簡(jiǎn)潔清晰,并且擁有大量的幾乎支持所有領(lǐng)域應(yīng)用開(kāi)發(fā)的成熟擴(kuò)展庫(kù)。1.1 如何選擇Python版本多版本共存與切換簡(jiǎn)便方法:更改系統(tǒng)環(huán)境變量path查看已安裝版本的方法有時(shí)候可能需要同時(shí)安裝多個(gè)不同的版本,并根據(jù)不同的開(kāi)發(fā)需求在兩個(gè)版本之間進(jìn)行切換。1.2 Python安裝與簡(jiǎn)單使用默認(rèn)編程環(huán)境:IDLE1.3 使用pip管理第三方包Python2中需要單獨(dú)安裝下載地址:/pypi/pip安裝方法:cmd=>python get-pip.py用法示例Python3安裝包中已默認(rèn)包含 pip1.3.1 Python 的對(duì)象模型對(duì)象是python語(yǔ)
6、言中最基本的概念,在python中處理的每樣?xùn)|西都是對(duì)象。python 中有許多內(nèi)置對(duì)象可供編程者使用, 內(nèi)置對(duì)象可直接使用,如數(shù)字、字符串、列表、del 等;非內(nèi)置對(duì)象需要導(dǎo)入模塊才能使用, 如正弦函數(shù)sin(x),隨機(jī)數(shù)產(chǎn)生函數(shù)random() 等。常用內(nèi)置對(duì)象1.3.2 Python 變量在Python中,不需要事先聲明變量名及其類(lèi)型,直接賦值即可創(chuàng)建各種類(lèi)型的對(duì) 象變量雖然不需要在使用之前顯式地聲明變量及其類(lèi)型,但是Python仍屬于強(qiáng)類(lèi)型編程語(yǔ)W 0Python還是一種動(dòng)態(tài)類(lèi)型語(yǔ)言Python采用的是基于值的內(nèi)存管理方式Python具有自動(dòng)內(nèi)存管理功能在定義變量名的時(shí)候,需要注意的問(wèn)
7、題。1.3.3 數(shù)字?jǐn)?shù)字是python中最常用的對(duì)象,屬于不可變對(duì)象??梢员硎救我獯笮〉臄?shù)字。1.3.4 字符串用單引號(hào)、雙引號(hào)或三引號(hào)括起來(lái)的符號(hào)系列稱(chēng)為字符串單引號(hào)、雙引號(hào)、三單引號(hào)、三雙引號(hào)可以互相嵌套,用來(lái)表示復(fù)雜字符串。1.1.1 合并1.1.2 格式化1.1.3 符1.4.5 操作符和表達(dá)式Python中很多運(yùn)算符有多重含義,在程序中運(yùn)算符的具體含義取決于操作數(shù)的類(lèi) 型。在Python中,單個(gè)任何類(lèi)型的對(duì)象或常數(shù)屬于合法表達(dá)式。1.4.6 常用內(nèi)置函數(shù)內(nèi)置函數(shù)不需要導(dǎo)入任何模塊即可使用執(zhí)行下面的命令可以列出所有內(nèi)置函數(shù)>>> dir(_builtins_)1.4.
8、7 對(duì)象的刪除在Python中具有自動(dòng)內(nèi)存管理功能。可以使用del命令來(lái)顯式刪除對(duì)象并解除與值之間的指向關(guān)系。1.4.8 基本輸入輸出用Python進(jìn)行程序設(shè)計(jì),輸入是通過(guò)input()函數(shù)來(lái)實(shí)現(xiàn)的。盡管形式一樣,Python 2.x 和Python 3.x 對(duì)該函數(shù)的解釋略有不同。1.4.9 模塊的使用Python默認(rèn)安裝僅包含部分基本或核心模塊,但用戶可以安裝大量的擴(kuò)展模塊,pip 是管理模塊的重要工具import模塊名1.5 Python 代碼規(guī)范(1)縮進(jìn)(2)注釋(3)每個(gè)import只導(dǎo)入一個(gè)模塊(4)如果一行語(yǔ)句太長(zhǎng),可以在行尾加上來(lái)?yè)Q行分成多行,但是更建議使用括號(hào)來(lái)包含多行內(nèi)容
9、。(5)必要的空格與空行(6)適當(dāng)使用異常處理結(jié)構(gòu)進(jìn)行容錯(cuò),后面將詳細(xì)講解。(7)軟件應(yīng)具有較強(qiáng)的可測(cè)試性,測(cè)試與開(kāi)發(fā)齊頭并進(jìn)。1.6 Python 文件名1.7 Python 腳本的"_name ”屬性1.8 編寫(xiě)自己的包與模塊包可以看做處于同一目錄中的模塊。1.9 Python 快速入門(mén)問(wèn)題1:用戶輸入一個(gè)三位自然數(shù),計(jì)算并輸出其佰位、十位和個(gè)位上的數(shù)字。問(wèn)題2:已知三角形的兩邊長(zhǎng)及其夾角,求第三邊長(zhǎng)。問(wèn)題3:任意輸入三個(gè)英文單詞,按字典順序輸出。三、重點(diǎn)、難點(diǎn)提示(一)Python中的對(duì)象(二)Python代碼的編寫(xiě)規(guī)范四、思考與練習(xí)安裝Python開(kāi)發(fā)包,并練習(xí)使用 pip管
10、理擴(kuò)展庫(kù)編程實(shí)現(xiàn)教材上的示例習(xí)題1.10第二章Python數(shù)據(jù)結(jié)構(gòu)一、學(xué)習(xí)目的Python中的數(shù)據(jù)結(jié)構(gòu),包括列表、元祖、字典、集合以及其他基本數(shù)據(jù)結(jié)構(gòu)。本章 計(jì)劃6學(xué)時(shí)。二、課程內(nèi)容2.1 列表列表是Python中內(nèi)置可變序列,是若干元素的有序集合,列表中的每一個(gè)數(shù)據(jù)稱(chēng)為元素,列表的所有元素放在一對(duì)中括號(hào)“”和“”中,并使用逗號(hào)分隔開(kāi);當(dāng)列表元素增加或刪除時(shí), 列表對(duì)象自動(dòng)進(jìn)行擴(kuò)展或收縮內(nèi)存,保證元素之間沒(méi)有縫隙;在Python中,一個(gè)列表中的數(shù)據(jù)類(lèi)型可以各不相同,可以同時(shí)分別為整數(shù)、實(shí)數(shù)、 字符串等基本類(lèi)型,甚至是列表、元素、字典、集合以及其他自定義類(lèi)型的對(duì)象。列表創(chuàng)建與刪除列表元素的增加列
11、表元素的刪除列表元素訪問(wèn)與計(jì)數(shù)成員資格判斷切片操作列表排序用于序列操作的常用內(nèi)置函數(shù)列表推導(dǎo)式2.2 元組元組和列表類(lèi)似,但屬于不可變序列,元組一旦創(chuàng)建,用任何方法都不可以修改其元組的定義方式和列表相同,但定義時(shí)所有元素是放在一對(duì)圓括號(hào)“(”和“)” 中,而不是方括號(hào)中。元組創(chuàng)建與刪除元組與列表的區(qū)別序列解包生成器推導(dǎo)式2.3 字典字典是鍵值對(duì)的無(wú)序可變集合。定義字典時(shí),每個(gè)元素的鍵和值用冒號(hào)分隔,元素之間用逗號(hào)分隔,所有的元素放 在一對(duì)大括號(hào)“和“ ”中。字典中的每個(gè)元素包含兩部分:鍵和值,向字典添加一個(gè)鍵的同時(shí),必須為該鍵增 添一個(gè)值。字典中的鍵可以為任意不可變數(shù)據(jù),比如整數(shù)、實(shí)數(shù)、復(fù)數(shù)、
12、字符串、元組等等。字典中的鍵不允許重復(fù)。globals()返回包含當(dāng)前作用域內(nèi)所有全局變量和值的字典locals。 返回包含當(dāng)前作用域內(nèi)所有局部變量和值的字典字典創(chuàng)建與刪除字典元素的讀取字典元素的添加與修改字典應(yīng)用案例有序字典字典推導(dǎo)式2.4 集合集合是無(wú)序可變集合,使用一對(duì)大括號(hào)界定,元素不可重復(fù)。集合的創(chuàng)建與刪除集合操作集合推導(dǎo)式2.5 再談內(nèi)置方法 sorted。2.6 其他數(shù)據(jù)結(jié)構(gòu)在Python中,除了基本序列之外,還有其他一些常用的數(shù)據(jù)結(jié)構(gòu),如堆、棧、隊(duì) 列、樹(shù)、圖等等。有些結(jié)構(gòu)Python已經(jīng)提供,而有些則需要自己利用基本數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。堆隊(duì)列棧鏈表二叉樹(shù)有向圖三、重點(diǎn)、難點(diǎn)提示(
13、一)Python中的常見(jiàn)數(shù)據(jù)結(jié)構(gòu)及其使用差異(二)Python運(yùn)算符的多重含義四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題 2.3 / 2.5 / 2.9 / 2.10第三章選擇與循環(huán)一、學(xué)習(xí)目的Python中的運(yùn)算符和條件表達(dá)式;選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的基本使用。本章計(jì)劃3學(xué)時(shí)。二、課程內(nèi)容3.1 條件表達(dá)式算術(shù)運(yùn)算符:+、-、*、/、/、% *關(guān)系運(yùn)算符:、=、=、=、!=,可以連續(xù)使用測(cè)試運(yùn)算符:in、not in 、is、is not邏輯運(yùn)算符:and、or、not ,注意短路求值位運(yùn)算符:、& |、人、3.2 選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)雙分支結(jié)構(gòu)多分支結(jié)構(gòu)選擇結(jié)構(gòu)的嵌套選擇結(jié)構(gòu)應(yīng)用3.3
14、循環(huán)結(jié)構(gòu)for循環(huán)與while循環(huán)Python提供了兩種基本的循環(huán)結(jié)構(gòu)語(yǔ)句while語(yǔ)句、for語(yǔ)句。while循環(huán)一般用于循環(huán)次數(shù)難以提前確定的情況,也可以用于循環(huán)次數(shù)確定的情況;for循環(huán)一般用于循環(huán)次數(shù)可以提前確定的情況,尤其是用于枚舉序列或迭代對(duì)象中的元素;一般優(yōu)先考慮使用for循環(huán)。相同或不同的循環(huán)結(jié)構(gòu)之間都可以互相嵌套,實(shí)現(xiàn)更為復(fù)雜的邏輯。循環(huán)結(jié)構(gòu)的優(yōu)化為了優(yōu)化程序以獲得更高的效率和運(yùn)行速度,在編寫(xiě)循環(huán)語(yǔ)句時(shí),應(yīng)盡量減少循環(huán)內(nèi)部不必要的計(jì)算,將與循環(huán)變量無(wú)關(guān)的代碼盡可能地提取到循環(huán)之外。對(duì)于使用多重 循環(huán)嵌套的情況,應(yīng)盡量減少內(nèi)層循環(huán)中不必要的計(jì)算,盡可能地向外提。3.4 brea
15、k 和 continue 語(yǔ)句break語(yǔ)句在while循環(huán)和for循環(huán)中都可以使用,一般放在if選擇結(jié)構(gòu)中,一旦 break語(yǔ)句被執(zhí)行,將使得整個(gè)循環(huán)提前結(jié)束。continue語(yǔ)句的作用是終止當(dāng)前循環(huán),并忽略 continue之后的語(yǔ)句,然后回到循 環(huán)的頂端,提前進(jìn)入下一次循環(huán)。除非break語(yǔ)句讓代碼更簡(jiǎn)單或更清晰,否則不要輕易使用。3.5 案例精選三、重點(diǎn)、難點(diǎn)提示(一)Python的關(guān)系運(yùn)算符和條件表達(dá)式(二)Python中的代碼縮進(jìn)(三)循環(huán)代碼的優(yōu)化四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題 3.5 / 3.7 / 3.8第四章字符串與正則表達(dá)式一、學(xué)習(xí)目的Python中的字符串及字符
16、串的常用方法;正則表達(dá)式的基本內(nèi)容及綜合運(yùn)用。本章 計(jì)劃3學(xué)時(shí)。二、課程內(nèi)容4.1 字符串在Python中,字符串也屬于序列類(lèi)型,除了支持序列通用方法(包括分片操作) 以外,還支持特有的字符串操作方法。字符串屬于不可變序列類(lèi)型Python字符串駐留機(jī)制:對(duì)于短字符串,將其賦值給多個(gè)不同的對(duì)象時(shí),內(nèi)存中只有一個(gè)副本,多個(gè)對(duì)象共享該副本。長(zhǎng)字符串不遵守駐留機(jī)制。判斷一個(gè)變量 s是否為字符串,應(yīng)使用 isinstance(s,basestring) 。在Python3 之前,字符串有str和unicode兩種,其基類(lèi)都是basestring 。在Python3之后合二為 一了。在Python3中,程
17、序源文件默認(rèn)為 UTF-8編碼,全面支持中文,字符串對(duì)象不再有 encode 和 decode 方法。字符串格式化字符串常用方法 字符串常量 4.2正則表達(dá)式 正則表達(dá)式是字符串處理的有力工具和技術(shù)。正則表達(dá)式使用某種預(yù)定義的模式去匹配一類(lèi)具有共同特征的字符串,主要用于處理字符串,可以快速、準(zhǔn)確地完成復(fù)雜的查找、替換等處理要求。Python中,re模塊提供了正則表達(dá)式操作所需要的功能。 正則表達(dá)式元字符.:匹配除換行符以外的任意單個(gè)字符*:匹配位于*之前的0個(gè)或多個(gè)字符+ :匹配位于+之前的一個(gè)或多個(gè)字符| :匹配位于|之前或之后的字符八:匹配行首,匹配以A后面的字符開(kāi)頭的字符串$:匹配行尾,
18、匹配以$之前的字符結(jié)束的字符串?:匹配位于?之前的0個(gè)或1個(gè)字符:表示位于之后的為轉(zhuǎn)義字符口 :匹配位于口中的任意一個(gè)字符- :用在口之內(nèi)用來(lái)表示范圍():將位于()內(nèi)的內(nèi)容作為一個(gè)整體來(lái)對(duì)待:按中的次數(shù)進(jìn)行匹配b :匹配單詞頭或單詞尾B :與也含義相反d :匹配任何數(shù)字,相當(dāng)于0-9D:與d含義相反s :匹配任何空白字符S :與s含義相反w:匹配任何字母、數(shù)字以及下劃線,相當(dāng)于 a-zA-Z0-9W:與w含義相反re模塊主要方法compile(pattern,flags):創(chuàng)建模式對(duì)象search(pattem,string,flags):在字符串中尋找模式match(pattern,str
19、ing,flags):從字符串的開(kāi)始處匹配模式findall(pattem,string,flags):列出字符串中模式的所有匹配項(xiàng)split(pattern,string,maxsplit=0):根據(jù)模式匹配項(xiàng)分割字符串sub(pat,repl,string,count=0):將字符串中所有 pat的匹配項(xiàng)用repl替換escape(string):將字符串中所有特殊正則表達(dá)式字符轉(zhuǎn)義直接使用re模塊方法使用正則表達(dá)式對(duì)象子模式與match對(duì)象正則表達(dá)式應(yīng)用案例三、重點(diǎn)、難點(diǎn)提示(一)正則表達(dá)式子模塊擴(kuò)展語(yǔ)法(二)字符串編碼,字符串格式化四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題 4.2 / 4
20、.3 / 4.5第五章函數(shù)設(shè)計(jì)與使用一、學(xué)習(xí)目的Python中函數(shù)的定義方法;參數(shù)類(lèi)型;變量作用域。本章計(jì)劃3學(xué)時(shí)。二、課程內(nèi)容5.1 函數(shù)定義def函數(shù)名(參數(shù)列表):'注釋''函數(shù)體5.2 形參與實(shí)參函數(shù)定義時(shí)括弧內(nèi)為形參,一個(gè)函數(shù)可以沒(méi)有形參,但是括弧必須要有,表示該函 數(shù)不接受參數(shù)。函數(shù)調(diào)用時(shí)向其傳遞實(shí)參,將實(shí)參的值或引用傳遞給形參。在函數(shù)內(nèi)直接修改形參的值不影響實(shí)參。5.3 參數(shù)類(lèi)型在Python中,函數(shù)參數(shù)有很多種:可以為普通參數(shù)、默認(rèn)值參數(shù)、關(guān)鍵參數(shù)、可 變長(zhǎng)度參數(shù)等等。Python函數(shù)的定義非常靈活,在定義函數(shù)時(shí)不需要指定參數(shù)的類(lèi)型,也不需要指定函數(shù)的類(lèi)
21、型,完全由調(diào)用者決定,類(lèi)似于重載和泛型;函數(shù)編寫(xiě)如果有問(wèn)題,只有在調(diào)用時(shí)才能被發(fā)現(xiàn),傳遞某些參數(shù)時(shí)執(zhí)行正確,而傳遞另一些類(lèi)型的參數(shù)時(shí)則出現(xiàn)錯(cuò)誤。默認(rèn)值參數(shù)def函數(shù)名(形參名二默認(rèn)值,”)函數(shù)體默認(rèn)值參數(shù)必須出現(xiàn)在函數(shù)參數(shù)列表的最右端,且任何一個(gè)默認(rèn)值參數(shù)右邊不能有非默認(rèn)值參數(shù)。調(diào)用帶有默認(rèn)值參數(shù)的函數(shù)時(shí),可以不對(duì)默認(rèn)值參數(shù)進(jìn)行賦值,也可以賦值,具有 較大的靈活性。關(guān)鍵參數(shù)關(guān)鍵參數(shù)主要指實(shí)參,即調(diào)用函數(shù)時(shí)的參數(shù)傳遞方式通過(guò)關(guān)鍵參數(shù)傳遞,實(shí)參順序可以和形參順序不一致,但不影響傳遞結(jié)果,避免了用戶需要牢記位置參數(shù)順序的麻煩??勺冮L(zhǎng)度參數(shù)可變長(zhǎng)度參數(shù)主要有兩種形式:"parameter和*
22、parameter ,前者用來(lái)接受多個(gè)實(shí)參并將其放在一個(gè)元組中,后者接受字典形式的實(shí)參。參數(shù)傳遞的序列解包傳遞參數(shù)時(shí),可以通過(guò)在實(shí)參序列前加星號(hào)將其解包,然后傳遞給多個(gè)單變量形參。5.4 return 語(yǔ)句return語(yǔ)句用來(lái)從一個(gè)函數(shù)中返回,即跳出函數(shù),也可用 return語(yǔ)句從函數(shù)中返 回一個(gè)值。如果函數(shù)沒(méi)有return語(yǔ)句,Python將認(rèn)為該函數(shù)以return None 結(jié)束。5.5 變量作用域變量起作用的范圍稱(chēng)為變量的作用域。一個(gè)變量在函數(shù)外部定義和在函數(shù)內(nèi)部定義,其作用域是不同的。局部變量的引用比全局變量速度快。三、重點(diǎn)、難點(diǎn)提示(一)默認(rèn)值參數(shù),關(guān)鍵參數(shù),可變長(zhǎng)度參數(shù),參數(shù)傳遞時(shí)
23、的序列解包(二)Lambda表達(dá)式四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題 5.2 / 5.3 / 5.10第六章面向?qū)ο蟪绦蛟O(shè)計(jì)一、學(xué)習(xí)目的Python中類(lèi)的定義與使用;類(lèi)的方法;Python2和Python3中的類(lèi)的屬性。本章計(jì)劃3學(xué)時(shí)。二、課程內(nèi)容6.1 類(lèi)的定義與使用 類(lèi)定義語(yǔ)法Python使用class關(guān)鍵字來(lái)定義類(lèi),class關(guān)鍵字之后是一個(gè)空格,然后是類(lèi)的名字,再然后是一個(gè)冒號(hào),最后換行并定義類(lèi)的內(nèi)部實(shí)現(xiàn)。類(lèi)名的首字母一般要大寫(xiě),當(dāng) 然您也可以按照自己的習(xí)慣定義類(lèi)名,但是一般推薦參考慣例來(lái)命名,并在整個(gè)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)中保持風(fēng)格一致,這一點(diǎn)對(duì)于團(tuán)隊(duì)合作尤其重要。例如:定義了類(lèi)之后,
24、可以用來(lái)實(shí)例化對(duì)象,并通過(guò)“對(duì)象名.成員”的方式來(lái)訪問(wèn)其中的數(shù)據(jù)成員或成員方法,例如下面的代碼:Python提供了一個(gè)關(guān)鍵字“pass”,類(lèi)似于空語(yǔ)句,可以用在類(lèi)和函數(shù)的定義中或 者選擇結(jié)構(gòu)中。當(dāng)暫時(shí)沒(méi)有確定如何實(shí)現(xiàn)功能,或者為以后的軟件升級(jí)預(yù)留空間,或者 其他類(lèi)型功能時(shí),可以使用該關(guān)鍵字來(lái)“占位”。self參數(shù)類(lèi)的所有實(shí)例方法都必須至少有一個(gè)名為“self ”的參數(shù),并且必須是方法的第一個(gè)形參(如果有多個(gè)形參的話),“ self ”參數(shù)代表將來(lái)要?jiǎng)?chuàng)建的對(duì)象本身。在類(lèi)的實(shí) 例方法中訪問(wèn)實(shí)例屬性時(shí)需要以“ self ”為前綴,但在外部通過(guò)對(duì)象名調(diào)用對(duì)象方法時(shí) 并不需要傳遞這個(gè)參數(shù),如果在外部通過(guò)
25、類(lèi)名調(diào)用對(duì)象方法則需要顯式為self參數(shù)傳值。在Python中,在類(lèi)中定義實(shí)例方法時(shí)將第一個(gè)參數(shù)定義為“ self ”只是一個(gè)習(xí)慣, 而實(shí)際上類(lèi)的實(shí)例方法中第一個(gè)參數(shù)的名字是可以變化的,而不必須使用“ self ”這個(gè) 名字。類(lèi)成員與實(shí)例成員這里主要指數(shù)據(jù)成員,或者廣義上的屬性??梢哉f(shuō)屬性有兩種,一種是實(shí)例屬性, 另一種是類(lèi)屬性。實(shí)例屬性一般是指在構(gòu)造函數(shù)_init_()中定義的,定義和使用時(shí)必 須以self作為前綴;類(lèi)屬性是在類(lèi)中所有方法之外定義的數(shù)據(jù)成員。在主程序中(或 類(lèi)的外部),實(shí)例屬性屬于實(shí)例(對(duì)象),只能通過(guò)對(duì)象名訪問(wèn);而類(lèi)屬性屬于類(lèi),可以 通過(guò)類(lèi)名或?qū)ο竺L問(wèn)。在類(lèi)的方法中可以調(diào)
26、用類(lèi)本身的其他方法,也可以訪問(wèn)類(lèi)屬性以及對(duì)象屬性。在 Python中比較特殊的是,可以動(dòng)態(tài)地為類(lèi)和對(duì)象增加成員,這一點(diǎn)是和很多面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同的,也是 Python動(dòng)態(tài)類(lèi)型特點(diǎn)的一種重要體現(xiàn)。私有成員與公有成員Python并沒(méi)有對(duì)私有成員提供嚴(yán)格的訪問(wèn)保護(hù)機(jī)制。在定義類(lèi)的屬性時(shí),如果屬性名以?xún)蓚€(gè)下劃線"”開(kāi)頭則表示是私有屬性,否則是公有屬性。私有屬性在類(lèi)的外部不能直接訪問(wèn),需要通過(guò)調(diào)用對(duì)象的公有成員方法來(lái)訪問(wèn),或者通過(guò)Python支持的特殊方式來(lái)訪問(wèn)。Python提供了訪問(wèn)私有屬性的特殊方式,可用于程序的測(cè)試和調(diào)試,對(duì) 于成員方法也具有同樣的性質(zhì)。私有屬性是為了數(shù)據(jù)封裝和保密
27、而設(shè)的屬性,一般只能在類(lèi)的成員方法(類(lèi)的內(nèi)部)中使用訪問(wèn),雖然 Python支持一種特殊的方式來(lái)從外部直接訪問(wèn)類(lèi)的私有成員,但是 并不推薦您這樣做。公有屬性是可以公開(kāi)使用的,既可以在類(lèi)的內(nèi)部進(jìn)行訪問(wèn),也可以 在外部程序中使用。在Python中,以下劃線開(kāi)頭的變量名和方法名有特殊的含義,尤其是在類(lèi)的定義 中。用下劃線作為變量名和方法名前綴和后綴來(lái)表示類(lèi)的特殊成員:_xxx :這樣的對(duì)象叫做保護(hù)成員,不能用 'from module import *' 導(dǎo)入,只有類(lèi)對(duì) 象和子類(lèi)對(duì)象能訪問(wèn)這些成員;_xxx_ :系統(tǒng)定義的特殊成員;_xxx:類(lèi)中的私有成員,只有類(lèi)對(duì)象自己能訪問(wèn),子類(lèi)
28、對(duì)象也不能訪問(wèn)到這個(gè)成 員,但在對(duì)象外部可以通過(guò)"對(duì)象名._類(lèi)名_xxx”這樣的特殊方式來(lái)訪問(wèn)。 Python中不存在嚴(yán)格意義上的私有成員。6.2 方法在類(lèi)中定義的方法可以粗略分為四大類(lèi):公有方法、私有方法、靜態(tài)方法和類(lèi)方法。其中,公有方法、私有方法都屬于對(duì)象,私有方法的名字以?xún)蓚€(gè)下劃線“”開(kāi)始,每個(gè)對(duì)象都有自己的公有方法和私有方法,在這兩類(lèi)方法中可以訪問(wèn)屬于類(lèi)和對(duì)象的成 員;公有方法通過(guò)對(duì)象名直接調(diào)用,私有方法不能通過(guò)對(duì)象名直接調(diào)用,只能在屬于對(duì) 象的方法中通過(guò)“self ”調(diào)用或在外部通過(guò) Python支持的特殊方式來(lái)調(diào)用。如果通過(guò) 類(lèi)名來(lái)調(diào)用屬于對(duì)象的公有方法,需要顯式為該方法
29、的“self ”參數(shù)傳遞一個(gè)對(duì)象名,用來(lái)明確指定訪問(wèn)哪個(gè)對(duì)象的數(shù)據(jù)成員。靜態(tài)方法和類(lèi)方法都可以通過(guò)類(lèi)名和對(duì)象名調(diào)用,但不能直接訪問(wèn)屬于對(duì)象的成員,只能訪問(wèn)屬于類(lèi)的成員。一般將“cls ”作為類(lèi)方法的第一個(gè)參數(shù)名稱(chēng),但也可以使用其他的名字作為參數(shù),并且在調(diào)用類(lèi)方法時(shí)不需要為該參數(shù)傳遞值。6.3 屬性Python 2.x和Python 3.x對(duì)屬性的實(shí)現(xiàn)和處理方式不一樣,內(nèi)部實(shí)現(xiàn)有較大的差 異,使用時(shí)應(yīng)注意二者之間的區(qū)別。Python 2.x 中的屬性 Python 3.x 中的屬性 在Python 3.x中,屬性得到了較為完整的實(shí)現(xiàn),支持更加全面的保護(hù)機(jī)制。例如 下面的代碼所示,如果設(shè)置屬性為只
30、讀,則無(wú)法修改其值,也無(wú)法為對(duì)象增加與屬性同 名的新成員,同時(shí),也無(wú)法刪除對(duì)象屬性。6.4 常用特殊方法Python類(lèi)有大量的特殊方法,其中比較常見(jiàn)的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。Python中類(lèi)的構(gòu)造函數(shù)是_init_(), 一般用來(lái)為數(shù)據(jù)成員設(shè)置初值或進(jìn)行其他必要的初始化工 作,在創(chuàng)建對(duì)象時(shí)被自動(dòng)調(diào)用和執(zhí)行,可以通過(guò)為構(gòu)造函數(shù)定義默認(rèn)值參數(shù)來(lái)實(shí)現(xiàn)類(lèi)似于其他語(yǔ)言中構(gòu)造函數(shù)重載的目的。如果用戶沒(méi)有設(shè)計(jì)構(gòu)造函數(shù),Python將提供一個(gè)默認(rèn)的構(gòu)造函數(shù)用來(lái)進(jìn)行必要的初始化工作。Python中類(lèi)的析構(gòu)函數(shù)是_del_(), 一般用來(lái)釋放對(duì)象占用的資源,在 Python刪除對(duì)象和收回對(duì)象空間時(shí)被自動(dòng)調(diào)用和執(zhí)行。
31、 如果用戶沒(méi)有編寫(xiě)析構(gòu)函數(shù),Python將提供一個(gè)默認(rèn)的析構(gòu)函數(shù)進(jìn)行必要的清理工作。6.5 繼承機(jī)制繼承是為代碼復(fù)用和設(shè)計(jì)復(fù)用而設(shè)計(jì)的,是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特性之一。當(dāng) 我們?cè)O(shè)計(jì)一個(gè)新類(lèi)時(shí),如果可以繼承一個(gè)已有的設(shè)計(jì)良好的類(lèi)然后進(jìn)行二次開(kāi)發(fā),無(wú)疑會(huì)大幅度減少開(kāi)發(fā)工作量。在繼承關(guān)系中,已有的、設(shè)計(jì)好的類(lèi)稱(chēng)為父類(lèi)或基類(lèi),新設(shè) 計(jì)的類(lèi)稱(chēng)為子類(lèi)或派生類(lèi)。 派生類(lèi)可以繼承父類(lèi)的公有成員,但是不能繼承其私有成員C如果需要在派生類(lèi)中調(diào)用基類(lèi)的方法,可以使用內(nèi)置函數(shù)super()或者通過(guò)“基類(lèi)名方法名()”的方式來(lái)實(shí)現(xiàn)這一目的。Python支持多繼承,如果父類(lèi)中有相同的方法名,而在子類(lèi)中使用時(shí)沒(méi)有指定父類(lèi)
32、名,則Python解釋器將從左向右按順序進(jìn)行搜索。三、重點(diǎn)、難點(diǎn)提示(一)Python對(duì)象的可變性(二)屬性的定義與使用四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題 6.1 / 6.2第七章文件操作一、學(xué)習(xí)目的文本文件的基本操作;二進(jìn)制文件的基本操作;文件操作和目錄操作。本章計(jì)劃3學(xué)時(shí)。二、課程內(nèi)容7.1 文件基本操作文件對(duì)象名=open(文件名,打開(kāi)方式,緩沖區(qū))(1)文件名指定了被打開(kāi)的文件名稱(chēng)。(2)打開(kāi)模式指定了打開(kāi)文件后的處理方式。(3)緩沖區(qū)指定了讀寫(xiě)文件的緩存模式。0表示不緩存,1表示緩存,如大于1則表示緩沖區(qū)的大小。默認(rèn)值是緩存模式。(4) open()函數(shù)返回1個(gè)文件對(duì)象,該對(duì)象可
33、以對(duì)文件進(jìn)行各種操作。7.2 文本文件基本操作使用with自動(dòng)關(guān)閉資源??梢栽诖a塊執(zhí)行完畢后還原進(jìn)入該代碼塊時(shí)的現(xiàn)場(chǎng)。不論何種原因跳出 with塊,總能保證文件被正確關(guān)閉。7.3 二進(jìn)制文件操作案例精選數(shù)據(jù)庫(kù)文件、圖像文件、可執(zhí)行文件、音視頻文件、Office文檔等等均屬于二進(jìn)制 文件。對(duì)于二進(jìn)制文件,不能使用記事本或其他文本編輯軟件進(jìn)行正常讀寫(xiě),也無(wú)法通 過(guò)Python的文件對(duì)象直接讀取和理解二進(jìn)制文件的內(nèi)容。必須正確理解二進(jìn)制文件結(jié) 構(gòu)和序列化規(guī)則,才能準(zhǔn)確地理解二進(jìn)制文件內(nèi)容并且設(shè)計(jì)正確的反序列化規(guī)則。所謂序列化,簡(jiǎn)單地說(shuō)就是把內(nèi)存中的數(shù)據(jù)在不丟失其類(lèi)型信息的情況下轉(zhuǎn)成對(duì)象的二進(jìn)制 形
34、式的過(guò)程,對(duì)象序列化后的形式經(jīng)過(guò)正確的反序列化過(guò)程應(yīng)該能夠準(zhǔn)確無(wú)誤地恢復(fù)為 原來(lái)的對(duì)象。Python中常用的序列化模塊有 struct、pickle、json、marshal和shelve ,其中 pickle有C語(yǔ)言實(shí)現(xiàn)的cPickle,速度約提高1000倍,應(yīng)優(yōu)先考慮使用。使用pickle模塊使用struct模塊7.4 文件級(jí)操作如果僅需要對(duì)文件內(nèi)容進(jìn)行讀寫(xiě),可以使用7.1節(jié)中介紹的文件對(duì)象;如果需要處理文件路徑,可以使用os.path模塊中的對(duì)象和方法;如果需要使用命令行讀取文件內(nèi) 容可以使用fileinput 模塊;創(chuàng)建臨時(shí)文件和文件夾可以使用tempfile模塊;另外,Python
35、3.4的pathlib模塊提供了大量用于表示和處理文件系統(tǒng)路徑的類(lèi)。os與os.path 模塊 shutil 模塊7.5 目錄操作7.6 高級(jí)話題計(jì)算 CRC32B ( Python 2.7.x )計(jì)算 CRC32B ( Python 3.x 版本)計(jì)算文本文件中最長(zhǎng)行的長(zhǎng)度計(jì)算 MD5t(Python 2.7.x 版本)判斷一個(gè)文件是否為GIF圖像文件比較兩個(gè)文本文件是否相同使用xlwt寫(xiě)入Excel文件使用xlrd讀取Excel文件使用Pywin32操彳Excel文件檢查word文檔的連續(xù)重復(fù)字三、重點(diǎn)、難點(diǎn)提示(一)文件操作三步驟(二)二進(jìn)制文件讀寫(xiě)方式,序列化模塊pickle與stru
36、ct(三)遍歷文件夾時(shí)遞歸的應(yīng)用四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題 7.1 / 7.2 / 7.5第八章異常處理結(jié)構(gòu)與程序調(diào)試一、學(xué)習(xí)目的異常處理的基本概念;Python中的異常處理結(jié)構(gòu)。本章計(jì)劃1學(xué)時(shí)。二、課程內(nèi)容8.1 什么是異常語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤不屬于異常,但有些語(yǔ)法錯(cuò)誤往往會(huì)導(dǎo)致異常,例如由于大小 寫(xiě)拼寫(xiě)錯(cuò)誤而訪問(wèn)不存在的對(duì)象。當(dāng)Python檢測(cè)到一個(gè)錯(cuò)誤時(shí),解釋器就會(huì)指出當(dāng)前流已無(wú)法繼續(xù)執(zhí)行下去,這時(shí) 候就出現(xiàn)了異常。異常是指因?yàn)槌绦虺鲥e(cuò)而在正常控制流以外采取的行為。異常分為兩個(gè)階段:第一個(gè)階段是引起異常發(fā)生的錯(cuò)誤;第二個(gè)階段是檢測(cè)并處理 階段。不建議使用異常來(lái)代替常規(guī)的檢查,如
37、 if.else 判斷。應(yīng)避免過(guò)多依賴(lài)于異常處理機(jī)制。當(dāng)程序出現(xiàn)錯(cuò)誤,python會(huì)自動(dòng)引發(fā)異常,也可以通過(guò) raise顯式地引發(fā)異常。8.2 Python 中的異常類(lèi)BaseException+- SystemExit+- KeyboardInterrupt+- GeneratorExit+- Exception+- StopIteration+- ArithmeticError| +- FloatingPointError| +- OverflowError| +- ZeroDivisionError+- AssertionError+- AttributeError+- BufferEr
38、ror+- EOFError+- ImportError+- LookupError | +- IndexError| +- KeyError+- MemoryError+- NameError| +- UnboundLocalError+- OSError| +- BlockingIOError| +- ChildProcessError| +- ConnectionError| | +- BrokenPipeError|+- ConnectionAbortedError|+- ConnectionRefusedError|+- ConnectionResetError| +- FileEx
39、istsError| +- FileNotFoundError| +- InterruptedError| +- IsADirectoryError| +- NotADirectoryError| +- PermissionError| +- ProcessLookupError| +- TimeoutError+- ReferenceError+- RuntimeError| +- NotImplementedError+- SyntaxError| +- IndentationError|+- TabError+- SystemError+- TypeError+- ValueError|
40、 +- UnicodeError|+- UnicodeDecodeError|+- UnicodeEncodeError+- DeprecationWarning+- PendingDeprecationWarning+- RuntimeWarning+- SyntaxWarning+- UserWarning+- FutureWarning+- ImportWarning+- UnicodeWarning+- BytesWarning+- ResourceWarning可以繼承Python內(nèi)置異常類(lèi)來(lái)實(shí)現(xiàn)自定義的異常類(lèi)。8.3 try.exceptelse 結(jié)構(gòu)try子句中的代碼塊放置可能出
41、現(xiàn)異常的語(yǔ)句,except子句中的代碼塊處理異常。如果try范圍內(nèi)捕獲了異常,就執(zhí)行 except塊;如果try范圍內(nèi)沒(méi)有捕獲異常, 就執(zhí)行else塊。8.4 斷言與上下文管理斷言與上下文管理是兩種比較特殊的異常處理方式,在形式上比異常處理結(jié)構(gòu)要簡(jiǎn)單一些。8.4.1 斷言斷言語(yǔ)句的語(yǔ)法是:assert expression, reason當(dāng)判斷表達(dá)式expression為真時(shí),什么都不做;如果表達(dá)式為假,則拋出異常。assert語(yǔ)句一般用于開(kāi)發(fā)程序時(shí)對(duì)特定必須滿足的條件進(jìn)行驗(yàn)證,僅當(dāng) _debug_ 為T(mén)rue時(shí)有效。當(dāng)Python腳本以-O選項(xiàng)編譯為字節(jié)碼文件時(shí),assert語(yǔ)句將被移除以提
42、高運(yùn)行速度。8.4.2 上下文管理使用with自動(dòng)關(guān)閉資源,可以在代碼塊執(zhí)行完畢后還原進(jìn)入該代碼塊時(shí)的現(xiàn)場(chǎng)。不論何種原因跳出 with塊,不論是否發(fā)生異常,總能保證文件被正確關(guān)閉,資源 被正確釋放。with語(yǔ)句的語(yǔ)法如下:with context_expr as var: with 塊三、重點(diǎn)、難點(diǎn)提示(一)異常的概念與表現(xiàn)形式(二)常見(jiàn)異常處理結(jié)構(gòu)(三)使用IDLE調(diào)試代碼四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例第九章GUI編程一、學(xué)習(xí)目的Python中GUI編程的基本方法;GUI中的常見(jiàn)組件。本章計(jì)劃 2學(xué)時(shí)。二、課程內(nèi)容建立GUI程序的三大步驟:1)導(dǎo)入必需的wxPython包或其他包2)建立
43、框架類(lèi):框架類(lèi)的父類(lèi)為 wx.Frame,在框架類(lèi)的構(gòu)造函數(shù)中必須調(diào)用父類(lèi) 的構(gòu)造函數(shù)。3)建立主程序:通常做 4件事一一建立應(yīng)用程序?qū)ο蟆⒔⒖蚣茴?lèi)對(duì)象、顯示框 架、建立事件循環(huán)- 執(zhí)行frame.Show(True)后,框架才看得見(jiàn)- 執(zhí)行app.MainLoop()后,框架才能處理事件。如需在窗體上增加其他控件,可在構(gòu)造函數(shù)中增加代碼如需處理事件,可增加框架類(lèi)的成員函數(shù)。9.1 FrameFrame:框架(窗體),容器,可移動(dòng)、縮放,包含標(biāo)題欄、菜單等。是所有框架 的父類(lèi)。wxPython 的 ID 參數(shù):可以明確給構(gòu)造函數(shù)傳遞一個(gè)正整數(shù),由程序員自行保證ID不重復(fù)并且沒(méi)有重用預(yù)定義的I
44、D號(hào),如 wx.ID_OK、wx.ID_CANCE坐ID號(hào)對(duì)應(yīng)的數(shù)值;9.2 Controls如需在窗體上增加其他控件,可在構(gòu)造函數(shù)中增加代碼。如需處理事件,可增加框架類(lèi)的成員函數(shù)。常用的控件主要有按鈕、靜態(tài)文本標(biāo)簽、文本框、單選鈕、復(fù)選框、對(duì)話框、菜單 等等Button、StaticText、TextCtrlMenuToolBar、StatusBar對(duì)話框RadioButton、CheckBoxRadioButton、CheckBoxComboBoxListBoxTreeCtrl三、重點(diǎn)、難點(diǎn)提示(一)wxPython基礎(chǔ)知識(shí)(二)各類(lèi)GUI控件的使用四、思考與練習(xí)編程實(shí)現(xiàn)教材上的示例習(xí)題
45、9.1 / 9.2第十章網(wǎng)絡(luò)程序設(shè)計(jì)一、學(xué)習(xí)目的UDP和TCP編程;網(wǎng)頁(yè)內(nèi)容的讀??;使用 Python開(kāi)發(fā)網(wǎng)站的基本方法。本章計(jì)劃 2學(xué)時(shí)。二、課程內(nèi)容Socket對(duì)象是網(wǎng)絡(luò)通信的基礎(chǔ),相當(dāng)于在發(fā)送端和接收端之間建立了 一個(gè)管道來(lái)實(shí) 現(xiàn)相互傳遞數(shù)據(jù)。Python對(duì)Socket進(jìn)行了二次封裝,簡(jiǎn)化了程序的開(kāi)發(fā)步驟,提高了開(kāi)發(fā)效率。Python提供了 socket模塊,提供了 socket接口的訪問(wèn)。Python還提供了大量模塊可以對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行抓取和處理。10.1 計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)網(wǎng)絡(luò)體系結(jié)構(gòu),分層設(shè)計(jì)的好處ftp 、 http、smtp、 pop3、telnet ,TCP UDP 端口號(hào)IP
46、地址MAO址10.2 UDP 和 TCP編程UD的議編程socket(family,type,proto)創(chuàng)建一個(gè) socket 對(duì)象,其中 family 為 socket.AF_INET 表示 IPV4,socket.AF_INET6 表示 IPV6; type 為 SOCK_STREAM TCP協(xié)議,SOCK_DGRAM UDP議。sendto(string,address)把string 指定的內(nèi)容發(fā)送給 address指定的地址,address是一個(gè)元組,格式為(IP 地址,端口號(hào))recvfrom(bufsize,flags)接收數(shù)據(jù)TCP編程 connect(address) 連接
47、遠(yuǎn)程計(jì)算機(jī) send(bytes,flags) 發(fā)送數(shù)據(jù)recv(bufsize,flags)接收數(shù)據(jù) bind(address) 綁定地址 listen(backlog) 開(kāi)始監(jiān)聽(tīng),等待客戶端連接 accept。響應(yīng)客戶端的請(qǐng)求10.3 簡(jiǎn)單嗅探器實(shí)現(xiàn)10.4 網(wǎng)頁(yè)內(nèi)容讀取在Python2中提供了 urllib 和urllib2兩個(gè)模塊用來(lái)讀取網(wǎng)頁(yè)內(nèi)容,在 Python3中重新進(jìn)行了整合,只提供 urllib 一個(gè)模塊。Python2 中的 urllib模塊在 Python3 中被分成了 urllib.request, urllib.parse和 urllib.error三部分,目前只支持
48、HTTP, (versions 0.9 and 1.0), FTF口 local files三種協(xié)議。urllib2 模塊在 Python3 中被合并到 urllib.request 和 urllib.error 中去了。10.5 使用Python開(kāi)發(fā)網(wǎng)站Python是一門(mén)腳本語(yǔ)言,完全可以像PHP VBScript等腳本語(yǔ)言一樣用來(lái)開(kāi)發(fā)網(wǎng)頁(yè) 以及CGI程序。既可以直接編寫(xiě) Python腳本程序來(lái)生成網(wǎng)頁(yè),也可以把Python程序嵌入“ .asp ”文件,無(wú)論使用哪種方式,都可以使用服務(wù)器上已安裝的所有Python擴(kuò)展模塊,同時(shí)也要遵守縮進(jìn)以及其他格式要求,如同編寫(xiě) Python程序一樣。10.6 使用web2py框架開(kāi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新型鋼構(gòu)材料采購(gòu)與施工勞務(wù)分包合同范本
- 二零二五年全新微商傭金分成合同范本下載3篇
- 2025年度汽車(chē)租賃合同電子版范本8篇
- 2025年度短視頻拍攝制作合同樣本4篇
- 二零二五年度歷史文化街區(qū)風(fēng)貌改造合同4篇
- 二零二五年度殯儀館鮮花禮儀用品采購(gòu)及配送合同3篇
- 2025年度農(nóng)藥市場(chǎng)準(zhǔn)入許可申請(qǐng)代理服務(wù)合同3篇
- 2025版環(huán)保型建筑材料供應(yīng)與施工合同4篇
- 二零二五年度木門(mén)行業(yè)品牌推廣采購(gòu)合同3篇
- 二零二五年度城鄉(xiāng)汽車(chē)租賃及售后服務(wù)合同
- (正式版)SJT 11449-2024 集中空調(diào)電子計(jì)費(fèi)信息系統(tǒng)工程技術(shù)規(guī)范
- 廣州綠色金融發(fā)展現(xiàn)狀及對(duì)策的研究
- 《近現(xiàn)代史》義和團(tuán)運(yùn)動(dòng)
- 人教版四年級(jí)上冊(cè)加減乘除四則混合運(yùn)算300題及答案
- 合成生物學(xué)技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負(fù)性情緒與心理護(hù)理
- 高考語(yǔ)文文學(xué)類(lèi)閱讀分類(lèi)訓(xùn)練:戲劇類(lèi)(含答案)
- 協(xié)會(huì)監(jiān)事會(huì)工作報(bào)告大全(12篇)
- 灰壩施工組織設(shè)計(jì)
- WS-T 813-2023 手術(shù)部位標(biāo)識(shí)標(biāo)準(zhǔn)
- 同意更改小孩名字協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論