本書(shū)系統(tǒng)地介紹Python應(yīng)用程序設(shè)計(jì)方法,主要內(nèi)容包括Python語(yǔ)法快速入門、類與模塊、圖形用戶界面設(shè)計(jì)、繪圖及數(shù)字圖像處理、文件與數(shù)據(jù)庫(kù)操作、多線程、異常處理及正則表達(dá)式、網(wǎng)絡(luò)編程與網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)、算法設(shè)計(jì)與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)等。本書(shū)每章都配有視頻教學(xué)內(nèi)容,以幫助讀者學(xué)習(xí)和理解。
本書(shū)講解詳細(xì),案例豐富,每一個(gè)知識(shí)點(diǎn)都配備了大量案例和圖示加以說(shuō)明,并通過(guò)典型案例對(duì)Python應(yīng)用程序設(shè)計(jì)方法進(jìn)行詳細(xì)的分析和解釋,幫助讀者輕松上手。
1、 本書(shū)重點(diǎn)講解Python應(yīng)用程序設(shè)計(jì)方法,適合有一定編程語(yǔ)言基礎(chǔ)的讀者快速掌握Python語(yǔ)言;
2、 書(shū)中選取的實(shí)例能舉一反三,同時(shí)規(guī)模適中,不大不小,適合在課堂中講授;
3、 精選案例,內(nèi)容新穎、實(shí)用。
Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。這門強(qiáng)大的語(yǔ)言如今在大學(xué)和一些大型軟件開(kāi)發(fā)公司中廣泛使用,其應(yīng)用也越來(lái)越廣。
本書(shū)從Python初學(xué)者的角度進(jìn)行選材和編寫(xiě),在編寫(xiě)過(guò)程中,注重基礎(chǔ)知識(shí)和實(shí)戰(zhàn)應(yīng)用相結(jié)合,本書(shū)有以下幾個(gè)特點(diǎn):
(1)淺顯易懂。本書(shū)從人們認(rèn)知規(guī)律出發(fā),對(duì)每一個(gè)概念,用簡(jiǎn)單的示例或圖示來(lái)加以說(shuō)明,并用短小的典型示例進(jìn)行分析解釋。
(2)內(nèi)容新穎而實(shí)用。人們學(xué)習(xí)編程的目的是為了解決人們生活和生產(chǎn)實(shí)踐中的問(wèn) 題,本書(shū)使用Python 3.x以上版本編寫(xiě)代碼,大部分章節(jié)精選了實(shí)用案例,可以幫助解決讀者在學(xué)習(xí)和實(shí)際應(yīng)用過(guò)程中所遇到的一些困難和問(wèn)題。
(3)本書(shū)在體系結(jié)構(gòu)的安排上將Python編程的基礎(chǔ)知識(shí)和一般編程思想有機(jī)結(jié)合,對(duì)基礎(chǔ)知識(shí)重點(diǎn)介紹與其他編程語(yǔ)言不同的部分,而與其他編程語(yǔ)言相同的語(yǔ)法部分則簡(jiǎn)略介紹。因此,本書(shū)適合具有初步編程語(yǔ)言基礎(chǔ)的讀者學(xué)習(xí)。
本書(shū)共9章,其內(nèi)容簡(jiǎn)單介紹如下。
第1章主要介紹Python的安裝與配置、Python程序編寫(xiě)規(guī)范和簡(jiǎn)單的Python程序 示例。
第2章簡(jiǎn)要地介紹數(shù)據(jù)類型、列表與元組、字典與集合、程序的三大控制結(jié)構(gòu)(順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu))、函數(shù)的基本語(yǔ)法與應(yīng)用。
第3章主要介紹類與模塊的基本知識(shí),并介紹了使用pip安裝和管理擴(kuò)展模塊的方法。
第4章主要介紹窗體容器、按鈕和文本框等組件、界面布局管理等圖形用戶界面設(shè)計(jì)的方法,還介紹了鼠標(biāo)與鍵盤(pán)事件及其應(yīng)用示例。
第5章主要介紹繪圖與數(shù)字圖像處理的基本方法。
第6章主要介紹數(shù)據(jù)的存儲(chǔ),包括文件的讀寫(xiě)、對(duì)Excel表格的處理、對(duì)SQLite數(shù)據(jù)庫(kù)及 MySQL數(shù)據(jù)庫(kù)記錄增刪改查的操作。
第7章主要介紹多線程、異常處理及正則表達(dá)式。
第8章主要介紹基于TCP及UDP的套接字編程和網(wǎng)絡(luò)爬蟲(chóng)程序的設(shè)計(jì),并介紹了爬取網(wǎng)絡(luò)數(shù)據(jù)的幾個(gè)典型案例,還介紹了Python在網(wǎng)絡(luò)程序開(kāi)發(fā)中的方法和技巧,旨在提升讀者的開(kāi)發(fā)技能,達(dá)成學(xué)以致用之目標(biāo)。
第9章主要介紹了常見(jiàn)數(shù)據(jù)結(jié)構(gòu),還介紹了兩個(gè)Python的熱門算法設(shè)計(jì)應(yīng)用數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的應(yīng)用案例。
建議教學(xué)安排(根據(jù)課程設(shè)置了兩個(gè)課時(shí)分配方案):
章 節(jié)
方案1/學(xué)時(shí)
方案2/學(xué)時(shí)
第 1 章 Python語(yǔ)言快速入門
2
2
第 2 章 Python語(yǔ)法速覽
4
8
第 3 章 類與模塊
2
4
續(xù)表
章 節(jié)
方案1/學(xué)時(shí)
方案2/學(xué)時(shí)
第 4 章 圖形用戶界面設(shè)計(jì)
4
8
第 5 章 繪圖與圖像處理
4
6
第 6 章 文件與數(shù)據(jù)庫(kù)編程(數(shù)據(jù)存儲(chǔ))
6
12
第 7 章 多線程與異常處理
2
6
第 8 章 網(wǎng)絡(luò)程序設(shè)計(jì)
6
14
第 9 章 算法設(shè)計(jì)及機(jī)器學(xué)習(xí)實(shí)戰(zhàn)入門
2
4
合計(jì)
32
64
學(xué)編程必須動(dòng)手才能見(jiàn)到成效,本書(shū)在設(shè)計(jì)上特別強(qiáng)調(diào)講練結(jié)合,注重實(shí)踐,不僅在講解的過(guò)程中結(jié)合大量代碼示例,同時(shí)適時(shí)穿插小項(xiàng)目演練,以鍛煉讀者的程序設(shè)計(jì)能力。
有很多人認(rèn)為Python簡(jiǎn)單易學(xué),但其實(shí)Python 的復(fù)雜程度要遠(yuǎn)高于許多人的想象,諸多概念被隱藏在看似簡(jiǎn)單的代碼背后。這也是Python易學(xué)難精的主要原因。因此,要強(qiáng)調(diào)動(dòng)手實(shí)踐,多編寫(xiě)、多練習(xí),熟能生巧,從學(xué)習(xí)中體驗(yàn)到程序設(shè)計(jì)的樂(lè)趣和成功的喜悅,增強(qiáng)學(xué)習(xí)信心。
本書(shū)由張思民編著。梁維娜參加本書(shū)編寫(xiě)及程序測(cè)試工作,在此表示感謝。
編 者
2018年5月
第1章 Python語(yǔ)言快速入門 1
1.1 Python的安裝與配置 1
1.2 運(yùn)行Python程序 2
1.2.1 運(yùn)行Python的方式 2
1.2.2 Python編寫(xiě)規(guī)范 4
1.3 編寫(xiě)簡(jiǎn)單的Python程序 5
習(xí)題1 9
第2章 Python語(yǔ)法速覽 10
2.1 Python的數(shù)據(jù)類型 10
2.2 列表和元組 12
2.2.1 列表定義與列表元素 12
2.2.2 列表的操作函數(shù) 13
2.2.3 元組 15
2.3 字典和集合 16
2.3.1 字典 16
2.3.2 集合 17
2.4 程序控制結(jié)構(gòu) 18
2.4.1 順序控制語(yǔ)句 18
2.4.2 if選擇語(yǔ)句 21
2.4.3 循環(huán)語(yǔ)句 25
2.5 函數(shù) 31
2.5.1 函數(shù)的定義與調(diào)用 31
2.5.2 局部變量與全局變量 32
2.5.3 常用內(nèi)置函數(shù) 33
2.5.4 匿名函數(shù)lambda 35
2.6 案例精選 35
習(xí)題2 41
第3章 類與模塊 43
3.1 類和對(duì)象 43
3.1.1 類的格式與創(chuàng)建對(duì)象 43
3.1.2 類的繼承 46
3.1.3 運(yùn)算符重載 48
3.2 模塊 48
3.2.1 模塊的導(dǎo)入 48
3.2.2 自定義模塊 49
3.2.3 常用標(biāo)準(zhǔn)庫(kù)模塊 50
3.2.4 使用pip安裝和管理擴(kuò)展模塊 54
3.3 案例精選 55
習(xí)題3 57
第4章 圖形用戶界面設(shè)計(jì) 58
4.1 圖形用戶界面概述 58
4.1.1 常用設(shè)計(jì)圖形界面的模塊 58
4.1.2 tkinter模塊 58
4.2 窗體容器和組件 59
4.2.1 窗體容器和標(biāo)簽組件 59
4.2.2 按鈕和事件處理 61
4.3 界面布局管理 63
4.4 文本框組件 65
4.5 其他常用組件 68
4.5.1 單選按鈕和復(fù)選框 68
4.5.2 標(biāo)簽框架、下拉列表框和滾動(dòng)文本框 69
4.6 菜單與對(duì)話框 71
4.6.1 菜單 71
4.6.2 對(duì)話框 73
4.7 鼠標(biāo)鍵盤(pán)事件 78
4.7.1 鼠標(biāo)事件 78
4.7.2 鍵盤(pán)事件 80
4.8 案例精選 81
習(xí)題4 83
第5章 繪圖及圖像處理 85
5.1 繪制圖形 85
5.1.1 用畫(huà)布組件繪圖 85
5.1.2 用turtle模塊繪圖 88
5.2 數(shù)字圖像處理基礎(chǔ) 90
5.2.1 Python圖像處理類庫(kù)PIL 90
5.2.2 圖像處理技術(shù) 91
5.3 案例精選 94
習(xí)題5 105
第6章 文件與數(shù)據(jù)庫(kù)編程(數(shù)據(jù)存儲(chǔ)) 106
6.1 文件目錄 106
6.1.1 文件目錄函數(shù) 106
6.1.2 文件目錄操作 106
6.2 文件的讀寫(xiě)操作 108
6.2.1 文件操作函數(shù) 108
6.2.2 打開(kāi)和關(guān)閉文件 109
6.2.3 讀取文件操作 109
6.2.4 寫(xiě)入文件操作 111
6.2.5 二進(jìn)制文件的讀寫(xiě) 114
6.2.6 對(duì)Excel數(shù)據(jù)的讀寫(xiě)操作 115
6.2.7 處理JSON格式數(shù)據(jù) 119
6.3 Python數(shù)據(jù)庫(kù)編程 124
6.3.1 SQLite數(shù)據(jù)庫(kù)編程 124
6.3.2 操作MySQL數(shù)據(jù)庫(kù) 129
6.4 案例精選 133
6.4.1 多功能文本編輯器 133
6.4.2 保存結(jié)構(gòu)化數(shù)據(jù) 137
6.4.3 英漢小詞典設(shè)計(jì) 139
習(xí)題6 142
第7章 多線程與異常處理 144
7.1 多線程編程 144
7.1.1 線程與多線程 144
7.1.2 線程的生命周期 145
7.1.3 創(chuàng)建線程的threading.Thread類 146
7.1.4 線程同步 150
7.2 異常處理 153
7.2.1 Python中的常見(jiàn)標(biāo)準(zhǔn)異常 153
7.2.2 異常的捕捉與處理 154
7.3 正則表達(dá)式 156
7.3.1 字符匹配與匹配模式 156
7.3.2 正則表達(dá)式的規(guī)則 157
7.3.3 正則表達(dá)式re模塊的方法 158
7.4 案例精選 160
習(xí)題7 163
第8章 網(wǎng)絡(luò)程序設(shè)計(jì) 164
8.1 套接字Socket編程基礎(chǔ) 164
8.1.1 套接字Socket 164
8.1.2 TCP與UDP 165
8.2 套接字Socket程序設(shè)計(jì) 166
8.2.1 基于TCP的客戶機(jī)/服務(wù)器模式 166
8.2.2 基于UDP的網(wǎng)絡(luò)程序設(shè)計(jì) 169
8.3 網(wǎng)絡(luò)應(yīng)用案例精選 170
8.3.1 文件傳輸協(xié)議FTP應(yīng)用 170
8.3.2 基于TCP的端口掃描器 172
8.3.3 遠(yuǎn)程控制計(jì)算機(jī) 174
8.3.4 網(wǎng)絡(luò)域名解析 176
8.4 網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)入門 178
8.4.1 抓取網(wǎng)頁(yè)數(shù)據(jù) 178
8.4.2 網(wǎng)絡(luò)爬蟲(chóng)簡(jiǎn)介 182
8.5 網(wǎng)絡(luò)爬蟲(chóng)案例精選 188
8.5.1 爬取某網(wǎng)站大學(xué)排名榜 188
8.5.2 爬取網(wǎng)絡(luò)版小說(shuō)《紅樓夢(mèng)》 189
8.5.3 爬取天氣預(yù)報(bào)信息 193
8.5.4 網(wǎng)絡(luò)爬蟲(chóng)利器Requests 195
8.5.5 爬取購(gòu)物網(wǎng)站商品信息 198
8.6 Python Web服務(wù)簡(jiǎn)介 201
習(xí)題8 203
第9章 算法設(shè)計(jì)及機(jī)器學(xué)習(xí)實(shí)戰(zhàn)入門 204
9.1 常見(jiàn)的數(shù)據(jù)結(jié)構(gòu) 204
9.1.1 堆棧 204
9.1.2 隊(duì)列 205
9.1.3 鏈表 207
9.1.4 樹(shù) 213
9.2 迷宮問(wèn)題算法設(shè)計(jì) 219
9.3 曲線點(diǎn)抽稀算法 223
9.3.1 道格拉斯-普克算法 224
9.3.2 垂距限值算法 227
9.4 Python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)入門 229
9.4.1 機(jī)器學(xué)習(xí)及其算法 229
9.4.2 機(jī)器學(xué)習(xí)應(yīng)用實(shí)例 231
9.5 機(jī)器學(xué)習(xí)案例精選 233