商品描述
本書以Python作為實現工具,介紹程序設計的基本思想和方法,培養學生利用Python解決實際問題的能力。本書分為兩部分:教學篇和實驗篇。教學篇共15章:第1章介紹Python基本知識與概念,開發環境,程序開發步驟,程序結構與編碼規範,輸入、輸出函數等;第2章介紹數據類型、常量和變量、運算符、常用特殊內置函數、程序調試等;第3章介紹程序設計結構,包括順序結構、選擇結構和循環結構;第4章介紹組合數據的使用方法,包括列表、元組、字典和集合;第5章介紹函數的定義和調用、參數類型、特殊函數、裝飾器及變量作用域等;第6章介紹類與對象,類的成員和方法,屬性,類的繼承與多態,抽象類等;第7章介紹常用標準庫模塊,常用第三方庫及模塊的使用,自定義模塊的創建、調用方法;第8章介紹正則表達式的語法規則、使用正則表達式模塊匹配和過濾字符串的步驟與方法等;第9章介紹文本文件和二進制文件的訪問方法;第10章介紹程序異常處理和單元測試的方法與步驟;第11章介紹在Python程序中訪問不同類型數據庫的方法;第12章介紹基於第三方庫wxPython的圖形用戶界面程序設計;第13章介紹多進程與多線程的創建、使用、通信、同步等;第14章介紹網絡程序設計,包括基於TCP和UDP的套接字(Socket)編程、Web編程等;第15章介紹人工智能的基本概念、使用Sklearn庫和TensorFlow框架進行人工智能開發的初步知識。實驗篇包括精選的、與各章知識對應的實驗題目,以方便讀者上機練習。本書可作為高等學校計算機程序設計課程的教材,也可供Python從業者學習和作為工具書使用。
目錄大綱
第1部分 教學篇
第1章 Python初步 1
1.1 概述 1
1.1.1 Python簡介 1
1.1.2 Python的特點 2
1.1.3 Python的應用 2
1.2 開發環境 3
1.2.1 Python版本 3
1.2.2 常用開發環境 3
1.2.3 Python下載和安裝 4
1.2.4 PyCharm下載和安裝 5
1.2.5 第三方庫安裝 6
1.3 程序開發 8
1.3.1 程序運行方式 8
1.3.2 使用Python自帶工具開發Python程序 8
1.3.3 使用PyCharm開發Python程序 11
1.4 程序結構和編碼規範 12
1.4.1 文件類型 12
1.4.2 代碼結構 13
1.4.3 程序編碼規範 14
1.5 輸入、輸出函數 19
1.5.1 input()函數 19
1.5.2 print()函數 19
練習題1 21
第2章 Python編程基礎 23
2.1 數據類型 23
2.2 數字類型 24
2.2.1 整型 24
2.2.2 浮點類型 24
2.2.3 復數類型 25
2.2.4 布爾類型 26
2.2.5 數字類型轉換 26
2.2.6 分數和高精度實數 26
2.2.7 常用數學函數 27
2.3 字符串類型 28
2.3.1 字符串創建 29
2.3.2 字符串訪問 29
2.3.3 字符串運算 30
2.3.4 字符串函數 31
2.3.5 轉義字符 34
2.4 常量和變量 35
2.4.1 常量 35
2.4.2 變量 35
2.5 運算符和表達式 38
2.5.1 常用運算符和表達式 38
2.5.2 運算符優先級 42
2.5.3 補充說明 43
2.6 內置函數 43
2.6.1 內置函數簡介 43
2.6.2 特殊內置函數 44
2.7 程序調試 46
2.7.1 錯誤類型 46
2.7.2 在PyCharm中調試程序 47
2.8 典型案例 47
2.8.1 計算復雜算術運算表達式的值 47
2.8.2 求幾何面、幾何體的(表)面積或體積 48
2.8.3 解一元二次方程 48
2.8.4 驗證碼驗證 49
練習題2 49
第3章 程序設計結構 52
3.1 程序設計方法 52
3.1.1 面向過程程序設計 52
3.1.2 多文件Python程序 53
3.1.3 算法 53
3.2 順序結構 54
3.3 選擇結構 54
3.3.1 單分支結構 54
3.3.2 二分支結構 55
3.3.3 多分支結構 56
3.3.4 條件運算 57
3.3.5 選擇結構嵌套 58
3.4 循環結構 58
3.4.1 while語句 58
3.4.2 for語句 59
3.4.3 break、continue和pass語句 61
3.4.4 循環結構的嵌套 62
3.5 典型案例 62
3.5.1 計算部分級數和 62
3.5.2 使用選擇結構計算員工工資 63
3.5.3 使用遞推法求解實際問題 64
3.5.4 使用試湊法解方程 64
3.5.5 計算機猜數字 65
3.5.6 模擬自動飲料機 66
練習題3 67
第4章 組合數據 69
4.1 概述 69
4.2 列表 69
4.2.1 列表創建 70
4.2.2 列表訪問 70
4.2.3 列表復制和刪除 72
4.2.4 列表運算 73
4.2.5 列表統計 74
4.2.6 列表元素查找和排序 74
4.3 元組 75
4.3.1 元組創建 75
4.3.2 元組訪問 76
4.3.3 元組復制和刪除 77
4.3.4 元組運算 77
4.3.5 元組統計 77
4.4 字典 78
4.4.1 字典創建 78
4.4.2 字典操作 78
4.4.3 字典復制和刪除 80
4.5 集合 81
4.5.1 集合創建 81
4.5.2 集合訪問 81
4.5.3 集合復制和刪除 83
4.5.4 集合運算 83
4.5.5 集合統計 83
4.6 嵌套組合數據 84
4.7 典型案例 84
4.7.1 查找 84
4.7.2 排序 86
4.7.3 推導式 88
4.7.4 將列表作為堆棧和隊列使用 90
4.7.5 基於組合數據的遊戲角色管理 90
練習題4 92
第5章 函數 94
5.1 概述 94
5.1.1 函數作用 94
5.1.2 函數分類 95
5.2 函數定義和調用 95
5.2.1 函數定義 95
5.2.2 函數調用 96
5.3 函數參數 97
5.3.1 參數傳遞 97
5.3.2 參數類型 98
5.3.3 參數傳遞的序列解包 99
5.4 特殊函數 99
5.4.1 匿名函數 99
5.4.2 遞歸函數 100
5.4.3 嵌套函數 101
5.5 裝飾器 102
5.5.1 裝飾器定義和調用 102
5.5.2 帶參數的裝飾器 103
5.6 變量作用域 104
5.7 典型案例 105
5.7.1 加密和解密 105
5.7.2 求最大公約數 106
5.7.3 使用裝飾器檢查函數參數合法性 107
5.7.4 模擬輪盤抽獎遊戲 108
練習題5 109
第6章 面向對象程序設計 111
6.1 概述 111
6.1.1 面向對象程序設計思路 111
6.1.2 面向對象程序組成 113
6.1.3 面向對象程序設計任務 113
6.2 類和對象 113
6.2.1 類定義 113
6.2.2 對象創建和使用 114
6.3 類的成員 114
6.3.1 成員類型 114
6.3.2 內置成員 116
6.4 類的方法 117
6.4.1 方法類型 117
6.4.2 屬性 118
6.4.3 特殊方法 119
6.5 類的繼承和多態 120
6.5.1 類的繼承 120
6.5.2 類的多態 121
6.6 抽象類和抽象方法 122
6.7 典型案例 122
練習題6 127
第7章 模塊、包和庫 129
7.1 概述 129
7.2 常用標準庫模塊 129
7.2.1 turtle模塊 130
7.2.2 random模塊 132
7.2.3 time模塊和datetime模塊 134
7.2.4 os模塊 136
7.2.5 sys模塊 138
7.2.6 timeit模塊 138
7.2.7 zlib模塊 139
7.3 常用第三方庫 139
7.3.1 NumPy庫 140
7.3.2 Pandas庫 143
7.3.3 SciPy庫 145
7.3.4 Matplotlib庫 147
7.3.5 Jieba庫 150
7.3.6 Pyinstaller庫 151
7.4 自定義模塊 152
7.5 典型案例 154
7.5.1 使用turtle模塊繪制表面填充的正方體 154
7.5.2 使用NumPy庫和Matplotlib庫分析股票 155
7.5.3 使用Pandas庫分析股票交易數據 157
7.5.4 使用圖像處理庫處理和顯示圖像 158
練習題7 159
第8章 正則表達式 161
8.1 概述 161
8.2 正則表達式語法 162
8.3 使用re模塊處理字符串 163
8.3.1 re模塊中的常用函數 164
8.3.2 常用正則表達式 167
8.4 典型案例 169
8.4.1 提取並匯總字符串中包含的費用 169
8.4.2 校驗字符串合法性 169
8.4.3 解析網頁內容 171
練習題8 172
第9章 文件訪問 174
9.1 概述 174
9.2 文本文件訪問 174
9.2.1 打開文件 175
9.2.2 文件操作 176
9.3 二進制文件訪問 179
9.3.1 使用pickle模塊讀/寫二進制文件 179
9.3.2 使用struct模塊讀/寫二進制文件 180
9.3.3 使用marshal模塊讀/寫二進制文件 181
9.3.4 使用shelve模塊讀/寫二進制文件 182
9.4 典型案例 183
9.4.1 合並文件 183
9.4.2 CSV文件操作 184
練習題9 185
第10章 異常處理和單元測試 187
10.1 異常類和異常處理 187
10.1.1 異常和異常類 187
10.1.2 異常處理 188
10.1.3 斷言語句 190
10.2 單元測試 191
10.3 典型案例 192
10.3.1 自定義異常類 192
10.3.2 自定義測試類 193
練習題10 194
第11章 數據庫訪問 196
11.1 概述 196
11.2 常用關系數據庫訪問 197
11.2.1 常用關系數據庫簡介 197
11.2.2 Python DB-API規範 199
11.2.3 典型案例——訪問關系數據庫 200
11.3 非關系數據庫訪問 208
11.3.1 MongoDB 208
11.3.2 典型案例——訪問MongoDB 210
練習題11 212
第12章 圖形用戶界面編程 213
12.1 wxPython庫簡介 213
12.2 事件處理 214
12.3 常用控件 215
12.3.1 窗體 215
12.3.2 按鈕、標簽和文本框 216
12.3.3 單選按鈕、復選框 217
12.3.4 列表框、組合框 218
12.3.5 菜單 219
12.3.6 工具欄、狀態欄 222
12.3.7 對話框 224
12.4 布局 227
12.4.1 布局及其類型 227
12.4.2 wx.BoxSizer 228
12.4.3 wx.GridSizer 229
12.5 典型案例——專利管理系統 230
練習題12 237
第13章 多進程與多線程 238
13.1 Python中的多進程 238
13.1.1 進程的含義 238
13.1.2 創建進程 238
13.1.3 進程通信 240
13.1.4 進程同步 242
13.2 Python中的多線程 243
13.2.1 線程的含義 243
13.2.2 創建線程 244
13.2.3 線程通信 247
13.2.4 線程同步 247
13.3 典型案例 250
13.3.1 使用多進程導入/導出數據 250
13.3.2 使用多線程模擬彩票發行 251
練習題13 253
第14章 網絡程序設計 254
14.1 網絡協議 254
14.1.1 互聯網協議族 254
14.1.2 TCP/IP 254
14.2 套接字(Socket)編程 255
14.2.1 套接字簡介 255
14.2.2 基於TCP的套接字編程 256
14.2.3 基於UDP的套接字編程 257
14.3 Web編程 259
14.3.1 Web編程概述 259
14.3.2 Django 260
14.4 典型案例 267
14.4.1 簡單嗅探器 267
14.4.2 多線程端口掃描 268
14.4.3 使用網絡爬蟲爬取全國城市天氣信息 269
14.4.4 基於Django的個人博客 275
練習題14 283
第15章 Python與人工智能 284
15.1 概述 284
15.1.1 人工智能簡介 284
15.1.2 Python與人工智能的關系 286
15.2 機器學習 286
15.2.1 Sklearn 287
15.2.2 典型案例——使用線性回歸模型訓練、測試和預測數據 289
15.3 深度學習 290
15.3.1 TensorFlow 291
15.3.2 典型案例——識別模糊的手寫數字圖像 293
練習題15 297
第2部分 實驗篇
實驗1 Python初步 299
一、實驗目的 299
二、實驗內容 299
實驗2 Python編程基礎 299
一、實驗目的 299
二、實驗內容 300
實驗3 程序設計結構 300
一、實驗目的 300
二、實驗內容 301
實驗4 組合數據 301
一、實驗目的 301
二、實驗內容 302
實驗5 函數 302
一、實驗目的 302
二、實驗內容 303
實驗6 面向對象程序設計 303
一、實驗目的 303
二、實驗內容 304
實驗7 模塊、包和庫 304
一、實驗目的 304
二、實驗內容 304
實驗8 正則表達式 305
一、實驗目的 305
二、實驗內容 305
實驗9 文件訪問 305
一、實驗目的 305
二、實驗內容 305
實驗10 異常處理和單元測試 306
一、實驗目的 306
二、實驗內容 306
實驗11 數據庫訪問 306
一、實驗目的 306
二、實驗內容 306
實驗12 圖形用戶界面編程 307
一、實驗目的 307
二、實驗內容 307
實驗13 多進程與多線程 308
一、實驗目的 308
二、實驗內容 308
實驗14 網絡程序設計 308
一、實驗目的 308
二、實驗內容 308
實驗15 Python與人工智能 308
一、實驗目的 308
二、實驗內容 309
參考文獻 310