第1章 過程型程序設計快速入門 1
1.1 創建並運行python程序 1
1.2 python的關鍵要素 5
1.2.1 要素#1:數據類型 6
1.2.2 要素#2:對象引用 7
1.2.3 要素#3:組閤數據類型 9
1.2.4 元素#4:邏輯操作符 12
1.2.5 要素#5:控製流語句 16
1.2.6 要素#6:算術操作符 20
1.2.7 要素#7:輸入/輸齣 23
1.2.8 要素#8:函數的創建與調用 25
1.3 實例 27
1.3.1 bigdigits.py 28
1.3.2 generate_grid.py 30
1.4 總結 33
1.5 練習 35
第2章 數據類型 38
2.1 標識符與關鍵字 38
2.2 integral類型 41
2.2.1 整數 41
.2.2.2 布爾型 44
2.3 浮點類型 44
2.3.1 浮點數 45
2.3.2 復數 48
2.3.3 十進製數字 49
2.4 字符串 50
2.4.1 比較字符串 53
2.4.2 字符串分片與步距 54
2.4.3 字符串操作符與方法 56
2.4.4 使用str.format()方法進行字符串格式化 62
2.4.5 字符編碼 73
2.5 實例 75
2.5.1 quadratic.py 75
2.5.2 csv2html.py 78
2.6 總結 82
2.7 練習 84
第3章 組閤數據類型 86
3.1 序列類型 86
3.1.1 元組 87
3.1.2 命名的元組 89
3.1.3 列錶 91
3.1.4 列錶內涵 96
3.2 集閤類型 98
3.2.1 集閤 98
3.2.2 集閤內涵 102
3.2.3 固定集閤 102
3.3 映射類型 103
3.3.1 字典 103
3.3.2 字典內涵 110
3.3.3 默認字典 111
3.4 組閤數據類型的迭代與復製 113
3.4.1 迭代子、迭代操作與函數 113
3.4.2 組閤類型的復製 121
3.5 實例 123
3.5.1 generate_usernames.py 123
3.5.2 statistics.py 126
3.6 總結 130
3.7 練習 131
第4章 控製結構與函數 133
4.1 控製結構 133
4.1.1 條件分支 133
4.1.2 循環 135
4.2 異常處理 136
4.2.1 捕獲與産生異常 136
4.2.2 自定義異常 141
4.3 自定義函數 144
4.3.1 名稱與docstrings 148
4.3.2 參數與參數拆分 149
4.3.3 存取全局範圍的變量 152
4.3.4 lambda函數 153
4.3.5 斷言 155
4.4 實例:make_html_skeleton.py 156
4.5 總結 162
4.6 練習 162
第5章 模塊 165
5.1 模塊與包 165
5.1.1 包 169
5.1.2 自定義模塊 171
5.2 python標準庫概覽 181
5.2.1 字符串處理 181
5.2.2 io.stringio類 182
5.2.3 命令行程序設計 183
5.2.4 數學與數字 184
5.2.5 時間與日期 184
5.2.6 實例:calendar、datetime與time模塊 185
5.2.7 算法與組閤數據類型 185
5.2.8 文件格式、編碼與數據持久性 187
5.2.9 文件、目錄與進程處理 190
5.2.10 網絡與internet程序設計 192
5.2.11 xml 193
5.2.12 其他模塊 195
5.3 總結 196
5.4 練習 198
第6章 麵嚮對象程序設計 200
6.1 麵嚮對象方法 200
6.2 自定義類 204
6.2.1 屬性與方法 205
6.2.2 繼承與多態 209
6.2.3 使用特性進行屬性存取控製 211
6.2.4 創建完全整閤的數據類型 213
6.3 自定義組閤類 225
6.3.1 創建聚集組閤數據的類 225
6.3.2 使用聚集創建組閤類 231
6.3.3 使用繼承創建組閤類 237
6.4 總結 244
6.5 練習 245
第7章 文件處理 247
7.1 二進製數據的讀寫 251
7.1.1 帶可選壓縮的pickle 252
7.1.2 帶可選壓縮的原始二進製數據 256
7.2 文本文件的寫入與分析 263
7.2.1 寫入文本 263
7.2.2 分析文本 265
7.2.3 使用正則錶達式分析文本 268
7.3 寫入與分析xml文件 270
7.3.1 元素樹 270
7.3.2 dom 274
7.3.3 手動寫入xml 277
7.3.4 使用sax分析xml 278
7.4 隨機存取二進製文件 281
7.4.1 通用的binaryrecordfile類 281
7.4.2 實例:bikestock模塊的類 289
7.5 總結 292
7.6 練習 293
第8章 高級程序設計技術 295
8.1 過程型程序設計進階 296
8.1.1 使用字典進行分支 296
8.1.2 生成器錶達式與函數 297
8.1.3 動態代碼執行與動態導入 300
8.1.4 局部函數與遞歸函數 306
8.1.5 函數與方法修飾器 311
8.1.6 函數注釋 314
8.2 麵嚮對象程序設計進階 317
8.2.1 控製屬性存取 317
8.2.2 函子 320
8.2.3 上下文管理器 322
8.2.4 描述符 325
8.2.5 類修飾器 330
8.2.6 抽象基類 333
8.2.7 多繼承 340
8.2.8 元類 342
8.3 函數型程序設計 346
8.3.1 偏函數 348
8.3.2 協程 349
8.4 實例:valid.py 356
8.5 總結 359
8.6 練習 360
第9章 調試、測試與profiling 361
9.1 調試 361
9.1.1 處理語法錯誤 362
9.1.2 處理運行時錯誤 363
9.1.3 科學的調試 367
9.2 單元測試 371
9.3 profiling 377
9.4 小結 382
第10章 進程與綫程 383
10.1 使用多進程模塊 384
10.2 將工作分布到多個綫程 388
10.2.1 實例:綫程化的單詞尋找程序 389
10.2.2 實例:一個綫程化的重復文件發現程序 392
10.3 總結 396
10.4 練習 397
第11章 網絡 399
11.1 創建tcp客戶端 400
11.2 創建tcp服務器 406
11.3 總結 412
11.4 練習 412
第12章 數據庫程序設計 414
12.1 dbm數據庫 414
12.2 sql數據庫 418
12.3 總結 425
12.4 練習 425
第13章 正則錶達式 427
13.1 python的正則錶達式語言 428
13.1.1 字符與字符類 428
13.1.2 量詞 429
13.1.3 組與捕獲 431
13.1.4 斷言與標記 433
13.2 正則錶達式模塊 436
13.3 總結 444
13.4 練習 445
第14章 分析簡介 446
14.1 bnf語法與分析的術語 447
14.2 手動編寫分析器 451
14.2.1 簡單的鍵-值數據分析 451
14.2.2 播放列錶數據分析 454
14.2.3 blocks域特定語言的分析 456
14.3 使用pyparsing進行更python化的分析 464
14.3.1 pyparsing快速介紹 465
14.3.2 簡單的鍵-值數據分析 468
14.3.3 播放列錶數據分析 470
14.3.4 分析塊域特定語言 471
14.3.5 分析一階邏輯 476
14.4 使用ply進行lex/yacc風格的分析 481
14.4.1 簡單的鍵-值數據分析 483
14.4.2 播放列錶數據分析 485
14.4.3 分析塊域特定語言 487
14.4.4 分析一階邏輯 489
14.5 小結 493
14.6 練習 494
第15章 gui程序設計介紹 496
15.1 對話框風格的程序 499
15.2 主窗口風格的程序 504
15.2.1 創建一個主窗口 504
15.2.2 創建自定義對話框 514
15.3 總結 517
15.4 練習 518
· · · · · · (
收起)