本書系統(tǒng)地介紹Python應(yīng)用程序設(shè)計(jì)方法,主要內(nèi)容包括Python語法快速入門、類與模塊、圖形用戶界面設(shè)計(jì)、繪圖及數(shù)字圖像處理、文件與數(shù)據(jù)庫操作、多線程、異常處理及正則表達(dá)式、網(wǎng)絡(luò)編程與網(wǎng)絡(luò)爬蟲設(shè)計(jì)、算法設(shè)計(jì)與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)等。本書每章都配有視頻教學(xué)內(nèi)容,以幫助讀者學(xué)習(xí)和理解。
本書講解詳細(xì),案例豐富,每一個(gè)知識(shí)點(diǎn)都配備了大量案例和圖示加以說明,并通過典型案例對Python應(yīng)用程序設(shè)計(jì)方法進(jìn)行詳細(xì)的分析和解釋,幫助讀者輕松上手。
1、 本書重點(diǎn)講解Python應(yīng)用程序設(shè)計(jì)方法,適合有一定編程語言基礎(chǔ)的讀者快速掌握Python語言;
2、 書中選取的實(shí)例能舉一反三,同時(shí)規(guī)模適中,不大不小,適合在課堂中講授;
3、 精選案例,內(nèi)容新穎、實(shí)用。
Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言。這門強(qiáng)大的語言如今在大學(xué)和一些大型軟件開發(fā)公司中廣泛使用,其應(yīng)用也越來越廣。
本書從Python初學(xué)者的角度進(jìn)行選材和編寫,在編寫過程中,注重基礎(chǔ)知識(shí)和實(shí)戰(zhàn)應(yīng)用相結(jié)合,本書有以下幾個(gè)特點(diǎn):
(1)淺顯易懂。本書從人們認(rèn)知規(guī)律出發(fā),對每一個(gè)概念,用簡單的示例或圖示來加以說明,并用短小的典型示例進(jìn)行分析解釋。
(2)內(nèi)容新穎而實(shí)用。人們學(xué)習(xí)編程的目的是為了解決人們生活和生產(chǎn)實(shí)踐中的問 題,本書使用Python 3.x以上版本編寫代碼,大部分章節(jié)精選了實(shí)用案例,可以幫助解決讀者在學(xué)習(xí)和實(shí)際應(yīng)用過程中所遇到的一些困難和問題。
(3)本書在體系結(jié)構(gòu)的安排上將Python編程的基礎(chǔ)知識(shí)和一般編程思想有機(jī)結(jié)合,對基礎(chǔ)知識(shí)重點(diǎn)介紹與其他編程語言不同的部分,而與其他編程語言相同的語法部分則簡略介紹。因此,本書適合具有初步編程語言基礎(chǔ)的讀者學(xué)習(xí)。
本書共9章,其內(nèi)容簡單介紹如下。
第1章主要介紹Python的安裝與配置、Python程序編寫規(guī)范和簡單的Python程序 示例。
第2章簡要地介紹數(shù)據(jù)類型、列表與元組、字典與集合、程序的三大控制結(jié)構(gòu)(順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu))、函數(shù)的基本語法與應(yīng)用。
第3章主要介紹類與模塊的基本知識(shí),并介紹了使用pip安裝和管理擴(kuò)展模塊的方法。
第4章主要介紹窗體容器、按鈕和文本框等組件、界面布局管理等圖形用戶界面設(shè)計(jì)的方法,還介紹了鼠標(biāo)與鍵盤事件及其應(yīng)用示例。
第5章主要介紹繪圖與數(shù)字圖像處理的基本方法。
第6章主要介紹數(shù)據(jù)的存儲(chǔ),包括文件的讀寫、對Excel表格的處理、對SQLite數(shù)據(jù)庫及 MySQL數(shù)據(jù)庫記錄增刪改查的操作。
第7章主要介紹多線程、異常處理及正則表達(dá)式。
第8章主要介紹基于TCP及UDP的套接字編程和網(wǎng)絡(luò)爬蟲程序的設(shè)計(jì),并介紹了爬取網(wǎng)絡(luò)數(shù)據(jù)的幾個(gè)典型案例,還介紹了Python在網(wǎng)絡(luò)程序開發(fā)中的方法和技巧,旨在提升讀者的開發(fā)技能,達(dá)成學(xué)以致用之目標(biāo)。
第9章主要介紹了常見數(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語言快速入門
2
2
第 2 章 Python語法速覽
4
8
第 3 章 類與模塊
2
4
續(xù)表
章 節(jié)
方案1/學(xué)時(shí)
方案2/學(xué)時(shí)
第 4 章 圖形用戶界面設(shè)計(jì)
4
8
第 5 章 繪圖與圖像處理
4
6
第 6 章 文件與數(shù)據(jù)庫編程(數(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)手才能見到成效,本書在設(shè)計(jì)上特別強(qiáng)調(diào)講練結(jié)合,注重實(shí)踐,不僅在講解的過程中結(jié)合大量代碼示例,同時(shí)適時(shí)穿插小項(xiàng)目演練,以鍛煉讀者的程序設(shè)計(jì)能力。
有很多人認(rèn)為Python簡單易學(xué),但其實(shí)Python 的復(fù)雜程度要遠(yuǎn)高于許多人的想象,諸多概念被隱藏在看似簡單的代碼背后。這也是Python易學(xué)難精的主要原因。因此,要強(qiáng)調(diào)動(dòng)手實(shí)踐,多編寫、多練習(xí),熟能生巧,從學(xué)習(xí)中體驗(yàn)到程序設(shè)計(jì)的樂趣和成功的喜悅,增強(qiáng)學(xué)習(xí)信心。
本書由張思民編著。梁維娜參加本書編寫及程序測試工作,在此表示感謝。
編 者
2018年5月
第1章 Python語言快速入門 1
1.1 Python的安裝與配置 1
1.2 運(yùn)行Python程序 2
1.2.1 運(yùn)行Python的方式 2
1.2.2 Python編寫規(guī)范 4
1.3 編寫簡單的Python程序 5
習(xí)題1 9
第2章 Python語法速覽 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 順序控制語句 18
2.4.2 if選擇語句 21
2.4.3 循環(huán)語句 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 類和對象 43
3.1.1 類的格式與創(chuàng)建對象 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)庫模塊 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 菜單與對話框 71
4.6.1 菜單 71
4.6.2 對話框 73
4.7 鼠標(biāo)鍵盤事件 78
4.7.1 鼠標(biāo)事件 78
4.7.2 鍵盤事件 80
4.8 案例精選 81
習(xí)題4 83
第5章 繪圖及圖像處理 85
5.1 繪制圖形 85
5.1.1 用畫布組件繪圖 85
5.1.2 用turtle模塊繪圖 88
5.2 數(shù)字圖像處理基礎(chǔ) 90
5.2.1 Python圖像處理類庫PIL 90
5.2.2 圖像處理技術(shù) 91
5.3 案例精選 94
習(xí)題5 105
第6章 文件與數(shù)據(jù)庫編程(數(shù)據(jù)存儲(chǔ)) 106
6.1 文件目錄 106
6.1.1 文件目錄函數(shù) 106
6.1.2 文件目錄操作 106
6.2 文件的讀寫操作 108
6.2.1 文件操作函數(shù) 108
6.2.2 打開和關(guān)閉文件 109
6.2.3 讀取文件操作 109
6.2.4 寫入文件操作 111
6.2.5 二進(jìn)制文件的讀寫 114
6.2.6 對Excel數(shù)據(jù)的讀寫操作 115
6.2.7 處理JSON格式數(shù)據(jù) 119
6.3 Python數(shù)據(jù)庫編程 124
6.3.1 SQLite數(shù)據(jù)庫編程 124
6.3.2 操作MySQL數(shù)據(jù)庫 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中的常見標(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ò)爬蟲實(shí)戰(zhàn)入門 178
8.4.1 抓取網(wǎng)頁數(shù)據(jù) 178
8.4.2 網(wǎng)絡(luò)爬蟲簡介 182
8.5 網(wǎng)絡(luò)爬蟲案例精選 188
8.5.1 爬取某網(wǎng)站大學(xué)排名榜 188
8.5.2 爬取網(wǎng)絡(luò)版小說《紅樓夢》 189
8.5.3 爬取天氣預(yù)報(bào)信息 193
8.5.4 網(wǎng)絡(luò)爬蟲利器Requests 195
8.5.5 爬取購物網(wǎng)站商品信息 198
8.6 Python Web服務(wù)簡介 201
習(xí)題8 203
第9章 算法設(shè)計(jì)及機(jī)器學(xué)習(xí)實(shí)戰(zhàn)入門 204
9.1 常見的數(shù)據(jù)結(jié)構(gòu) 204
9.1.1 堆棧 204
9.1.2 隊(duì)列 205
9.1.3 鏈表 207
9.1.4 樹 213
9.2 迷宮問題算法設(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