本書分為兩部分。第一部分為第1~7章,介紹了Python的語法、編程基礎和對常見錯誤的處理。第二部分為第8~14章,介紹了Python的各種實踐應用,分別是對目錄和文件的操作,對Excel、Word和PDF文件的操作,在圖像處理、網(wǎng)絡爬蟲領域的應用,以及Python的圖形用戶接口編程。本書以實踐應用為目的,希望讀者能夠前后對應,根據(jù)例題舉一反三。
本書可供Python愛好者和技術人員參考和自學,也非常適于用作高等院校的自動化類、電子信息類、機械類、計算機類等相關專業(yè)的教材。
戴鳳智,2003.4-2009.3任教于日本國立松江工業(yè)高等專門學校電子控制系; 2009.12至今,在天津科技大學任教。作為指導教師帶領學生獲得過以下獎勵: 2013年第十二屆“挑戰(zhàn)杯”天津市大學生課外學術科技作品競賽一等獎; 2012年天津市第七屆“挑戰(zhàn)杯”創(chuàng)新創(chuàng)業(yè)計劃大賽銀獎; 2011年第十一屆“挑戰(zhàn)杯”天津市大學生課外學術科技作品競賽二等獎; 2011年全國大學生電子設計競賽(天津賽區(qū))二等獎和三等獎各一項。 2010年至2012年中國機器人大賽暨RoboCup公開賽醫(yī)療與服務機器人比賽的一等獎,二等獎和三等獎若干項。
第1章 Python簡介 001
1.1 Python及其特征 001
1.1.1 Python是什么 001
1.1.2 為什么要學Python 002
1.1.3 Python的應用 003
1.2 搭建Python環(huán)境 004
1.2.1 安裝Python 004
1.2.2 安裝PyCharm 006
1.2.3 配置PyCharm 008
1.3 編寫簡單的Python程序 011
第2章 Python變量與運算符 015
2.1 要重視給程序加注釋 015
2.2 變量與賦值 016
2.2.1 什么是變量 016
2.2.2 賦值語句 016
2.3 數(shù)據(jù)類型 017
2.3.1 Numbers(數(shù)字)型 018
2.3.2 String(字符串)型 018
2.4 輸入與輸出 021
2.4.1 print函數(shù) 021
2.4.2 input函數(shù) 026
2.5 基本運算 028
第3章 Python條件與循環(huán)語句 032
3.1 條件語句 032
3.2 循環(huán)語句 038
第4章 Python基本數(shù)據(jù)結構 049
4.1 序列及其操作 049
4.2 元組及其操作 050
4.3 列表及其操作 053
4.3.1 創(chuàng)建與訪問列表 053
4.3.2 對列表中元素的操作 055
4.3.3 對整個列表的操作 059
4.4 集合及其操作 066
4.4.1 集合的創(chuàng)建 066
4.4.2 集合的運算 068
4.4.3 集合的函數(shù)處理 070
4.5 字典及其操作 073
4.5.1 字典的創(chuàng)建 073
4.5.2 字典的處理 075
第5章 Python的函數(shù) 083
5.1 函數(shù)及其調用方法 083
5.1.1 函數(shù)的定義 083
5.1.2 函數(shù)的調用 084
5.2 函數(shù)的參數(shù)傳遞 085
5.2.1 可選參數(shù)傳遞 085
5.2.2 可變參數(shù)傳遞 087
5.3 函數(shù)的返回值 088
5.4 局部變量和全局變量 089
5.5 lambda函數(shù) 093
5.6 函數(shù)遞歸 094
第6章 Python的面向對象編程 101
6.1 面向對象編程 101
6.2 類和對象 102
6.2.1 類 102
6.2.2 對象 102
6.2.3 類的方法 105
6.2.4 繼承 105
6.2.5 多繼承 107
6.2.6 方法重寫 109
第7章 Python常見錯誤與異常處理 113
7.1 Bug與Debug 113
7.1.1 粗心導致的語法錯誤SyntaxError 113
7.1.2 知識不熟練導致的錯誤 115
7.1.3 思路不清晰時的解決方法 116
7.2 異常情況及其處理方法 116
7.2.1 異常情況 116
7.2.2 對異常情況的處理 119
第8章 Python對目錄和文件的操作 124
第9章 Python的Excel自動化操作 133
9.1 Pandas簡介 133
9.2 使用Pandas讀取Excel表格 135
9.3 讀取CSV和TXT文件 137
9.4 Series的行和列 138
9.5 DataFrame的數(shù)據(jù)變更及行列變換 141
9.6 數(shù)據(jù)填充與列計算 146
9.7 數(shù)據(jù)的分割與合并 148
9.8 數(shù)據(jù)的排序與去重 152
9.9 數(shù)據(jù)的篩選與過濾 154
9.10 數(shù)據(jù)的可視化 158
第10章 Python玩轉Word文檔 166
10.1 認識python-docx庫 166
10.2 python-docx的基本操作 167
10.3 文本屬性 170
10.3.1 段落屬性 170
10.3.2 字體格式 176
10.4 設置頁眉和頁腳 178
10.5 在Word中插入圖片 180
10.6 Word中的表格操作 181
10.6.1 添加表格并裝填數(shù)據(jù) 181
10.6.2 批量讀取Word文件中的表格 185
10.7 批量生成Word文檔 188
第11章 Python玩轉PDF 192
11.1 讀取PDF文件的基本信息和文件寫入功能 192
11.2 PDF文件的分割、提取與合并 195
11.3 PDF文件的加密與解密 198
11.4 為PDF加水印與去水印 204
11.5 讀取PDF數(shù)據(jù) 207
第12章 Python的圖像處理 210
12.1 利用OpenCV讀取和保存圖像 210
12.2 OpenCV+Python的圖形繪制 213
12.3 圖像中的像素處理 217
12.4 圖像中的算術運算與邏輯運算 220
12.4.1 圖像的算術運算 220
12.4.2 圖像的邏輯運算 222
12.5 圖像的閾值操作 225
12.6 圖像的模糊平滑處理 228
12.6.1 均值濾波 229
12.6.2 方框濾波 230
12.6.3 高斯濾波 231
12.6.4 中值濾波 232
12.6.5 雙邊濾波 233
12.6.6 2D卷積(自定義卷積核)濾波 234
12.7 圖像的形態(tài)學操作 237
12.7.1 圖像腐蝕 237
12.7.2 圖像膨脹 239
12.7.3 組合形態(tài)學操作 240
12.8 Canny邊緣檢測 243
12.9 圖像的模板匹配 245
12.10 利用GrabCut提取前景 250
12.11 OpenCV的鼠標交互 253
12.12 角點(特征點)檢測 258
12.13 利用Haar算法進行人臉檢測 260
第13章 Python網(wǎng)絡爬蟲 264
13.1 網(wǎng)絡爬蟲 264
13.1.1 什么是網(wǎng)絡爬蟲 264
13.1.2 網(wǎng)絡爬蟲的工作 265
13.1.3 什么是網(wǎng)頁 266
13.1.4 什么是URL 268
13.1.5 robots協(xié)議 269
13.2 從網(wǎng)頁獲取數(shù)據(jù) 270
13.2.1 有的網(wǎng)頁直接提供下載 270
13.2.2 Python爬蟲的工作流程 271
13.2.3 利用Requests庫 272
13.3 通過Beautiful Soup進行數(shù)據(jù)解析 279
13.3.1 Beautiful Soup的使用方法 280
13.3.2 Beautiful Soup選擇器 281
13.3.3 方法選擇器 283
13.3.4 CSS選擇器 287
13.4 爬蟲的實戰(zhàn) 289
第14章 Python的GUI編程 297
14.1 GUI與GUI編程 297
14.2 導入Tkinter創(chuàng)建第一個界面程序 298
14.3 窗口布局管理器 302
14.4 Tkinter的常用組件和屬性 306
14.5 Tkinter的內容組件 308
14.5.1 Label標簽顯示文本和圖片 308
14.5.2 Message組件顯示文本信息 309
14.5.3 Entry組件實現(xiàn)信息交互 311
14.5.4 Text組件靈活處理文本 312
14.6 Tkinter的按鈕組件 316
14.6.1 單擊按鈕并觸發(fā)事件的例子 316
14.6.2 單選按鈕 317
14.6.3 復選框組件 318
14.6.4 列表框與組合欄 321
14.7 Tkinter的菜單組件 325
14.8 Tkinter的窗體組件 328
14.8.1 子窗體 328
14.8.2 交互對話框 330
14.8.3 輸入對話框 334
14.8.4 文件選擇對話框 335
14.9 Tkinter組件的補充 336
14.9.1 滑塊 336
14.9.2 滾動條 337
14.10 Tkinter的事件響應 338
參考文獻 344