圖書目錄
目錄
第1章 初識Python 1
1.1 Python概述 1
1.1.1 Python起源 2
1.1.2 Python版本 2
1.1.3 Python套用 3
1.2 搭建Python開發環境 4
1.2.1 下載Python 4
1.2.2 安裝Python 4
1.2.3 啟動Python 6
1.2.4 多版本Python及虛擬環境的安裝 7
1.3 Python開發環境的使用 10
1.3.1 使用自帶的IDLE 11
1.3.2 常用的第三方開發工具 11
1.3.3 官網互動式環境 11
1.4 初學者常見的問題 12
1.4.1 為什麼提示“python不是內部或外部命令……” 12
1.4.2 如何在Python互動模式下運行.py檔案 13
1.5 本章實戰 13
1.5.1 IDLE的簡單使用 13
1.5.2 pip工具的使用 15
1.5.3 初始化環境 16
1.6 本章小結 16
1.7 思考與練習 16
第2章 Python語言基礎 17
2.1 Python語法特點 17
2.1.1 注釋 18
2.1.2 代碼規範 20
2.2 標識符與保留字 22
2.2.1 標識符 22
2.2.2 保留字 23
2.3 使用變數 24
2.3.1 變數的定義 24
2.3.2 變數的類型 25
2.4 基本數據類型 25
2.4.1 數字類型 25
2.4.2 字元串類型 27
2.4.3 布爾類型 29
2.4.4 數據類型轉換 29
2.5 運算符 30
2.5.1 算術運算符 30
2.5.2 比較運算符 32
2.5.3 賦值運算符 32
2.5.4 邏輯運算符 34
2.5.5 位運算符 34
2.5.6 成員運算符 35
2.5.7 身份運算符 36
2.5.8 運算符的優先權 36
2.6 基本輸入輸出 38
2.6.1 使用input()函式輸入 38
2.6.2 使用print()函式輸出 38
2.7 本章實戰 39
2.7.1 求和 39
2.7.2 求平方根 40
2.7.3 求水仙花數 41
2.7.4 判斷素數 42
2.8 本章小結 43
2.9 思考與練習 44
第3章 字元與序列 45
3.1 字元串的常見操作 46
3.1.1 字元串長度的計算 47
3.1.2 字母的大小寫轉換 47
3.1.3 字元串的分隔 48
3.1.4 字元串的拼接 49
3.1.5 字元串查找 52
3.1.6 字元串替換 52
3.1.7 統計字元出現的次數 53
3.1.8 去除字元串中的空格和特殊字元 53
3.1.9 格式化字元串 54
3.1.10 encode()和decode()方法 55
3.2 序列 56
3.2.1 索引 56
3.2.2 切片 57
3.2.3 序列相加 58
3.2.4 序列相乘 59
3.2.5 檢查某個元素是否是序列的成員 59
3.2.6 計算序列的長度、最大值和最小值 60
3.3 列表序列 60
3.3.1 刪除列表元素 61
3.3.2 訪問列表元素 62
3.3.3 更新與擴展列表 62
3.3.4 對列表元素進行統計 63
3.3.5 對列表進行排序 64
3.3.6 列表推導式 65
3.4 元組 67
3.4.1 元組的創建 67
3.4.2 訪問元組元素 69
3.4.3 連線元組 69
3.4.4 刪除元組 69
3.4.5 元組的運算符 70
3.4.6 生成器 70
3.4.7 元組與列表的區別 71
3.5 字典 72
3.5.1 字典的創建 72
3.5.2 訪問字典 72
3.5.3 修改字典 73
3.5.4 刪除字典元素 73
3.5.5 字典的內置方法 73
3.5.6 字典的遍歷 74
3.6 集合 75
3.6.1 集合的創建 75
3.6.2 集合的常見操作 76
3.6.3 集合的內置方法 78
3.7 本章實戰 79
3.8 本章小結 80
3.9 思考與練習 81
第4章 流程控制語句 83
4.1 分支結構 83
4.1.1 單分支if結構 83
4.1.2 雙分支if…else結構 84
4.1.3 多分支if…elif…else結構 84
4.2 循環結構 85
4.2.1 while循環 85
4.2.2 while死循環 86
4.2.3 while…else語句 86
4.2.4 for循環 87
4.2.5 循環控制語句 87
4.2.6 循環嵌套 88
4.3 本章實戰 89
4.3.1 判斷閏年 89
4.3.2 使用snaps庫製作數字鬧鐘 90
4.4 本章小結 90
4.5 思考與練習 90
第5章 正則表達式 92
5.1 認識正則表達式 92
5.1.1 元字元 93
5.1.2 預定義字元 93
5.1.3 特殊分組用法 94
5.2 re模組中的常用功能函式 95
5.2.1 re.compile函式 95
5.2.2 re.match函式 95
5.2.3 re.search函式 96
5.2.4 re.findall函式 97
5.2.5 re.finditer函式 97
5.2.6 re.split函式 98
5.2.7 re.sub函式 98
5.2.8 re.subn函式 99
5.2.9 注意事項 99
5.3 本章實戰 100
5.4 本章小結 102
5.5 思考與練習 102
第6章 函式 103
6.1 函式的創建和調用 103
6.1.1 創建函式 103
6.1.2 調用函式 104
6.2 參數傳遞 106
6.2.1 不可變類型參數和可變類型參數 106
6.2.2 參數形式 107
6.3 返回值 111
6.3.1 return語句 111
6.3.2 返回多個值 111
6.4 變數的作用域 112
6.4.1 全局變數和局部變數 113
6.4.2 global和nonlocal關鍵字 113
6.5 匿名函式(lambda) 114
6.6 Collatz序列 115
6.7 本章小結 116
6.8 思考與練習 116
第7章 面向對象編程 117
7.1 面向對象編程概述 117
7.1.1 面向對象編程中的術語介紹 118
7.1.2 類的定義 118
7.1.3 類的使用 119
7.1.4 類的方法 120
7.2 深入介紹類 120
7.2.1 類的構造方法 121
7.2.2 類的訪問許可權 124
7.3 封裝 129
7.4 繼承與多態 132
7.4.1 類的單繼承 132
7.4.2 類的多繼承 133
7.4.3 構造函式的繼承 134
7.4.4 方法重寫 135
7.4.5 繼承下的多態 135
7.5 類的專有方法 138
7.6 本章實戰 144
7.7 本章小結 145
7.8 思考與練習 146
第8章 模組 148
8.1 模組 148
8.1.1 標準模組 149
8.1.2 import語句 149
8.1.3 搜尋路徑 150
8.1.4 from…import語句 151
8.1.5 創建模組 152
8.1.6 安裝第三方模組 152
8.2 模組的高級技術 153
8.2.1 __name__屬性 153
8.2.2 dir函式 154
8.3 Python中的包 155
8.3.1 包的定義 155
8.3.2 包的導入 155
8.3.3 包的組織 156
8.4 常用的內置模組 156
8.4.1 collections 156
8.4.2 base64 159
8.4.3 struct 160
8.4.4 hashlib 161
8.4.5 itertools 163
8.4.6 XML 164
8.4.7 HTMLParser 166
8.5 本章實戰 166
8.5.1 創建模組 166
8.5.2 安裝模組 170
8.6 本章小結 171
8.7 思考與練習 171
第9章 異常處理和程式調試 172
9.1 異常 173
9.1.1 錯誤與異常的概念 173
9.1.2 Python內置異常 173
9.1.3 requests模組的相關異常 175
9.1.4 用戶自定義異常 176
9.2 異常處理 176
9.2.1 捕獲所有異常 177
9.2.2 捕獲指定異常 177
9.2.3 捕獲多個異常 178
9.2.4 異常中的else 178
9.2.5 異常中的finally 178
9.2.6 使用raise語句主動拋出異常 179
9.2.7 使用traceback模組查看異常 180
9.3 程式調試 181
9.3.1 調試 181
9.3.2 斷言 182
9.3.3 logging 183
9.3.4 pdb 183
9.3.5 pdb.set_trace() 185
9.3.6 IDE 186
9.4 單元測試 186
9.4.1 單元測試概述 186
9.4.2 運行單元測試 188
9.4.3 setUp()與tearDown()方法 188
9.5 文檔測試 189
9.6 本章小結 191
9.7 思考與練習 191
第10章 目錄和檔案操作 192
10.1 基本檔案操作 192
10.1.1 打開和關閉檔案 192
10.1.2 檔案模式 194
10.1.3 緩衝 195
10.2 基本檔案方法 196
10.2.1 讀和寫 196
10.2.2 重命名 200
10.2.3 序列化和反序列化 201
10.3 目錄操作 206
10.3.1 路徑 207
10.3.2 目錄內容 209
10.3.3 獲取檔案信息 210
10.3.4 重命名、移動、複製和刪除檔案 211
10.3.5 創建和刪除目錄 211
10.3.6 檔案通配符 212
10.4 輪換檔案 213
10.5 本章小結 214
10.6 思考與練習 215
第11章 多執行緒編程 216
11.1 進程和執行緒 216
11.1.1 進程 216
11.1.2 執行緒 217
11.1.3 多進程和多執行緒 217
11.2 使用執行緒 218
11.2.1 全局解釋器鎖 218
11.2.2 退出執行緒 219
11.2.3 Python的執行緒模組 219
11.3 _thread模組 219
11.4 threading模組 222
11.4.1 守護執行緒 222
11.4.2 Thread對象 223
11.5 執行緒同步 227
11.6 Queue模組 229
11.7 執行緒與進程的比較 230
11.7.1 執行緒切換 231
11.7.2 計算密集型與IO密集型 231
11.7.3 異步IO 232
11.8 本章實戰 232
11.8.1 斐波那契數列、階乘和加和 232
11.8.2 使用佇列解決生產者/消費者模型 234
11.8.3 子進程的使用 235
11.8.4 進程池的使用 236
11.8.5 多個子進程間的通信 237
11.9 本章小結 238
11.10 思考與練習 239
第12章 資料庫編程 240
12.1 使用dbm創建持久字典 241
12.1.1 選擇dbm模組 241
12.1.2 創建持久字典 241
12.1.3 訪問持久字典 242
12.1.4 dbm與關係資料庫的適用場合 244
12.2 關係資料庫與SQL 244
12.2.1 SQL語言 245
12.2.2 創建資料庫 247
12.2.3 定義表 248
12.3 使用Python的DB API 249
12.3.1 下載DB API模組 249
12.3.2 創建連線 249
12.3.3 資料庫的CRUD操作 250
12.3.4 使用事務並提交結果 255
12.3.5 檢查模組的功能和元數據 256
12.3.6 處理錯誤 256
12.4 使用mysql-connector 257
12.4.1 連線MySQL資料庫 257
12.4.2 創建資料庫 258
12.4.3 創建數據表 258
12.4.4 主鍵設定 259
12.4.5 插入數據 260
12.4.6 查詢數據 261
12.4.7 where條件語句 262
12.4.8 排序 263
12.4.9 limit語句 264
12.4.10 刪除記錄 265
12.4.11 更新數據 265
12.4.12 刪除數據表 266
12.5 本章小結 267
12.6 思考和練習 267
第13章 網路編程 270
13.1 網路編程概述 270
13.2 TCP/IP簡介 271
13.2.1 TCP/IP協定族概述 271
13.2.2 套用層 271
13.2.3 傳輸層 274
13.2.4 網路層 275
13.2.5 IP位址與連線埠 276
13.3 傳送電子郵件 277
13.3.1 使用Python傳送郵件 277
13.3.2 使用Python傳送HTML格式的郵件 279
13.3.3 使用Python傳送帶附屬檔案的郵件 280
13.3.4 在HTML文本中添加圖片 281
13.3.5 使用第三方SMTP服務傳送郵件 282
13.4 接收Internet郵件 283
13.4.1 通過POP3下載郵件 283
13.4.2 解析郵件 284
13.5 套接字編程 286
13.5.1 TCP編程 286
13.5.2 UDP編程 290
13.6 本章小結 291
13.7 思考和練習 291
第14章 Django與投票管理系統 292
14.1 Web框架的功能 293
14.1.1 Web框架的基本功能 293
14.1.2 Web框架的其他通用功能 293
14.2 Django框架的安裝 294
14.2.1 Django框架的特點 294
14.2.2 Django框架的版本 294
14.2.3 在Windows下安裝Django 295
14.3 使用Django框架 296
14.3.1 創建pyqi項目 296
14.3.2 創建投票套用polls 298
14.3.3 項目的目錄結構 299
14.3.4 初步配置視圖和urls 299
14.4 為pyqi項目創建資料庫 301
14.4.1 為pyqi項目配置資料庫 301
14.4.2 為polls套用創建模型 302
14.4.3 為polls套用激活模型 303
14.4.4 測試生成的模型API 305
14.4.5 使用Django管理界面 307
14.5 完善投票套用的視圖 310
14.5.1 編寫視圖 311
14.5.2 為視圖添加模板 312
14.5.3 渲染模板 313
14.5.4 拋出Http404異常 314
14.5.5 get_object_or_404() 314
14.5.6 為投票套用使用模板 315
14.5.7 為URL名稱添加名稱空間 315
14.6 為投票套用定製表單 316
14.6.1 編寫表單 316
14.6.2 通用視圖 318
14.7 管理投票套用的靜態資源 320
14.7.1 自定義套用界面和風格 320
14.7.2 管理靜態資源 320
14.8 完善投票管理後台 321
14.8.1 修改後台表單 321
14.8.2 修改欄位列表 325
14.8.3 更改後台界面和風格 326
14.9 打包和發布投票系統 328
14.9.1 重用的重要性 328
14.9.2 打包項目和套用 328
14.9.3 安裝和卸載自定義包 331
14.9.4 發布包 332
14.10 本章小結 332
14.11 思考與練習 332
參考文獻 333