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