第一部分 Python語言
第1章 Python簡介 2
1.1 運行Python 2
1.2 變量和算術錶達式 3
1.3 條件語句 5
1.4 文件輸入和輸齣 6
1.5 字符串 7
1.6 列錶 8
1.7 元組 9
1.8 集閤 10
1.9 字典 11
1.10 迭代與循環 12
1.11 函數 13
1.12 生成器 14
1.13 協程 15
1.14 對象與類 16
1.15 異常 17
1.16 模塊 18
1.17 獲得幫助 19
第2章 詞匯和語法約定 20
2.1 行結構和縮進 20
2.2 標識符和保留字 21
2.3 數字字麵量 21
2.4 字符串字麵量 22
2.5 容器 23
2.6 運算符、分隔符及特殊符號 24
2.7 文檔字符串 24
2.8 裝飾器 24
2.9 源代碼編碼 25
第3章 類型與對象 26
3.1 術語 26
3.2 對象的身份與類型 26
3.3 引用計數與垃圾收集 27
3.4 引用與復製 28
3.5 第一類對象 29
3.6 錶示數據的內置類型 30
3.6.1 None類型 30
3.6.2 數字類型 31
3.6.3 序列類型 31
3.6.4 映射類型 35
3.6.5 集閤類型 36
3.7 錶示程序結構的內置類型 37
3.7.1 可調用類型 38
3.7.2 類、類型與實例 40
3.7.3 模塊 41
3.8 解釋器內部使用的內置類型 41
3.8.1 代碼對象 41
3.8.2 幀對象 42
3.8.3 跟蹤對象 42
3.8.4 生成器對象 43
3.8.5 切片對象 43
3.8.6 Ellipsis對象 43
3.9 對象行為與特殊方法 44
3.9.1 對象的創建與銷毀 44
3.9.2 對象字符串錶示 44
3.9.3 對象比較與排序 45
3.9.4 類型檢查 46
3.9.5 屬性訪問 46
3.9.6 屬性包裝與描述符 46
3.9.7 序列與映射方法 47
3.9.8 迭代 48
3.9.9 數學操作 48
3.9.10 可調用接口 50
3.9.11 上下文管理協議 50
3.9.12 對象檢查與dir() 51
第4章 運算符與錶達式 52
4.1 數字操作 52
4.2 序列操作 53
4.3 字符串格式化 56
4.4 高級字符串格式化 57
4.5 字典操作 59
4.6 集閤操作 60
4.7 增量賦值 60
4.8 屬性(.)運算符 61
4.9 函數調用()運算符 61
4.10 轉換函數 61
4.11 布爾錶達式與真值 62
4.12 對象的比較與身份 63
4.13 運算優先級 63
4.14 條件錶達式 64
第5章 程序結構與控製流 65
5.1 程序結構與執行 65
5.2 執行條件語句 65
5.3 循環與迭代 66
5.4 異常 68
5.4.1 內置異常 70
5.4.2 定義新異常 71
5.5 上下文管理器與with語句 72
5.6 斷言與__debug__ 73
第6章 函數與函數編程 75
6.1 函數 75
6.2 參數傳遞與返迴值 77
6.3 作用域規則 77
6.4 函數對象與閉包 79
6.5 裝飾器 82
6.6 生成器與yield 83
6.7 協程與yield錶達式 85
6.8 使用生成器與協程 87
6.9 列錶包含 89
6.10 生成器錶達式 90
6.11 聲明式編程 91
6.12 lambda運算符 92
6.13 遞歸 92
6.14 文檔字符串 93
6.15 函數屬性 94
6.16 eval()、exec()和compile()函數 94
第7章 類與麵嚮對象編程 96
7.1 class語句 96
7.2 類實例 97
7.3 範圍規則 97
7.4 繼承 98
7.5 多態動態綁定和鴨子類型 100
7.6 靜態方法和類方法 101
7.7 特性 102
7.8 描述符 104
7.9 數據封裝和私有屬性 105
7.10 對象內存管理 106
7.11 對象錶示和屬性綁定 108
7.12 __slots__ 109
7.13 運算符重載 110
7.14 類型和類成員測試 111
7.15 抽象基類 113
7.16 元類 114
7.17 類裝飾器 117
第8章 模塊、包與分發 118
8.1 模塊與import語句 118
8.2 從模塊導入選定符號 119
8.3 以主程序的形式執行 120
8.4 模塊搜索路徑 121
8.5 模塊加載和編譯 121
8.6 模塊重新加載和卸載 122
8.7 包 123
8.8 分發Python程序和庫 125
8.9 安裝第三方庫 127
第9章 輸入與輸齣 129
9.1 讀取命令行選項 129
9.2 環境變量 130
9.3 文件和文件對象 130
9.4 標準輸入、輸齣和錯誤 133
9.5 print語句 133
9.6 print()函數 134
9.7 文本輸齣中的變量插入 134
9.8 生成輸齣 135
9.9 Unicode字符串處理 136
9.10 Unicode I/O 137
9.10.1 Unicode數據編碼 138
9.10.2 Unicode字符特性 140
9.11 對象持久性與pickle模塊 140
第10章 執行環境 142
10.1 解釋器選項與環境 142
10.2 交互式會話 144
10.3 啓動Python應用程序 145
10.4 站點配置文件 145
10.5 用戶站點包 146
10.6 啓用新功能 146
10.7 程序終止 147
第11章 測試、調試、探查與調優 149
11.1 文檔字符串和doctest模塊 149
11.2 單元測試和unittest模塊 151
11.3 Python調試器和pdb模塊 153
11.3.1 調試器命令 153
11.3.2 從命令行進行調試 156
11.3.3 配置調試器 156
11.4 程序探查 156
11.5 調優與優化 157
11.5.1 進行計時測量 157
11.5.2 進行內存測量 158
11.5.3 反匯編 158
11.5.4 調優策略 159
第二部分 Python庫
第12章 內置函數和異常 164
12.1 內置函數和類型 164
12.2 內置異常 172
12.2.1 異常基類 172
12.2.2 異常實例 173
12.2.3 預定義的異常類 173
12.3 內置警告 176
12.4 future_builtins 176
第13章 Python運行時服務 178
13.1 atexit 178
13.2 copy 178
13.3 gc 179
13.4 inspect 180
13.5 marshal 183
13.6 pickle 184
13.7 SYS 186
13.7.1 變量 186
13.7.2 函數 189
13.8 traceback 191
13.9 types 192
13.10 warnings 193
13.11 weakref 194
第14章 數學運算 197
14.1 decimal 197
14.1.1 Decimal對象 197
14.1.2 Context對象 198
14.1.3 函數和常量 200
14.1.4 示例 201
14.2 fractions 202
14.3 math 203
14.4 numbers 205
14.5 random 206
14.5.1 種子和初始化 206
14.5.2 隨機整數 206
14.5.3 隨機序列 206
14.5.4 實值隨機分布 207
第15章 數據結構、算法與代碼簡化 209
15.1 abc 209
15.2 array 210
15.3 bisect 212
15.4 collections 213
15.4.1 deque和defaultdict 213
15.4.2 命名元組 214
15.4.3 抽象基類 216
15.5 contextlib 217
15.6 functools 218
15.7 heapq 219
15.8 itertools 220
15.9 operator 222
第16章 字符串和文本處理 225
16.1 odecs 225
16.1.1 低級codecs接口 225
16.1.2 I/O相關函數 226
16.1.3 有用的常量 227
16.1.4 標準編碼 227
16.1.5 注意 228
16.2 re 228
16.2.1 模式語法 228
16.2.2 函數 229
16.2.3 正則錶達式對象 231
16.2.4 匹配對象 231
16.2.5 示例 232
16.2.6 注意 233
16.3 string 233
16.3.1 常量 233
16.3.2 Formatter對象 233
16.3.3 Template字符串 235
16.3.4 實用工具函數 235
16.4 struct 235
16.4.1 打包和解包函數 236
16.4.2 Struct對象 236
16.4.3 格式編碼 236
16.4.4 注意 237
16.5 unicodedata 238
第17章 Python數據庫訪問 241
17.1 關係數據庫API規範 241
17.1.1 連接 241
17.1.2 Cursor 242
17.1.3 生成查詢 243
17.1.4 類型對象 244
17.1.5 錯誤處理 245
17.1.6 多綫程 245
17.1.7 將結果映射到字典中 246
17.1.8 數據庫API擴展 246
17.2 sqlite3模塊 246
17.2.1 模塊級函數 246
17.2.2 連接對象 248
17.2.3 遊標和基本操作 250
17.3 DBM風格的數據庫模塊 252
17.4 shelve模塊 253
第18章 文件和目錄處理 254
18.1 bz2 254
18.2 filecmp 255
18.3 fnmatch 256
18.4 glob 257
18.5 gzip 257
18.6 shutil 258
18.7 tarfile 259
18.7.1 異常 261
18.7.2 示例 262
18.8 tempfile 262
18.9 zipfile 263
18.10 zlib 266
第19章 操作係統服務 268
19.1 Commands模塊 268
19.2 ConfigParser、configparser模塊 269
19.2.1 ConfigParser類 269
19.2.2 示例 270
19.2.3 注意 272
19.3 datetime模塊 272
19.3.1 date對象 272
19.3.2 time對象 273
19.3.3 datetime對象 274
19.3.4 timedelta對象 275
19.3.5 涉及日期的數學運算 276
19.3.6 tzinfo對象 277
19.3.7 日期與時間解析 278
19.4 errno模塊 278
19.4.1 POSIX錯誤代碼 278
19.4.2 Windows錯誤代碼 279
19.5 fcntl模塊 280
19.5.1 示例 281
19.5.2 注意 282
19.6 io模塊 282
19.6.1 基本I/O接口 282
19.6.2 原始I/O 282
19.6.3 緩存二進製I/O 283
19.6.4 文本I/O 285
19.6.5 open()函數 285
19.6.6 抽象基類 286
19.7 logging模塊 286
19.7.1 日誌記錄級彆 286
19.7.2 基本配置 287
19.7.3 Logger對象 288
19.7.4 處理器對象 292
19.7.5 消息格式化 295
19.7.6 各種實用工具函數 296
19.7.7 日誌記錄配置 296
19.7.8 性能考慮 299
19.7.9 注意 299
19.8 mmap模塊 299
19.9 msvcrt模塊 301
19.10 optparse模塊 303
19.10.1 例子 305
19.10.2 注意 306
19.11 os模塊 307
19.11.1 進程環境 307
19.11.2 文件創建與文件描述符 309
19.11.3 文件與目錄 313
19.11.4 進程管理 316
19.11.5 係統配置 320
19.11.6 異常 321
19.12 os.path模塊 321
19.13 signal模塊 323
19.13.1 例子 325
19.13.2 注意 325
19.14 subprocess模塊 326
19.14.1 例子 327
19.14.2 注意 328
19.15 time模塊 328
19.16 winreg模塊 331
第20章 綫程與並發性 334
20.1 基本概念 334
20.2 並發編程與Python 335
20.3 multiprocessing模塊 336
20.3.1 進程 336
20.3.2 進程間通信 337
20.3.3 進程池 343
20.3.4 共享數據與同步 345
20.3.5 托管對象 347
20.3.6 連接 352
20.3.7 各種實用工具函數 353
20.3.8 多進程處理的一般建議 353
20.4 threading模塊 354
20.4.1 Thread對象 354
20.4.2 Timer對象 356
20.4.3 Lock對象 356
20.4.4 RLock 356
20.4.5 信號量與有邊界的信號量 357
20.4.6 事件 358
20.4.7 條件變量 358
20.4.8 使用Lock 359
20.4.9 綫程終止與掛起 360
20.4.10 實用工具函數 361
20.4.11 全局解釋器鎖定 361
20.4.12 使用綫程編程 361
20.5 queue、Queue模塊 362
20.6 協程與微綫程 364
第21章 網絡編程和套接字 365
21.1 網絡編程基礎 365
21.2 asynchat模塊 367
21.3 asyncore模塊 370
21.4 select 374
21.4.1 高級模塊功能 375
21.4.2 高級異步I/O示例 375
21.4.3 異步聯網的時機 381
21.5 socket 383
21.5.1 地址族 383
21.5.2 套接字類型 383
21.5.3 尋址 384
21.5.4 函數 385
21.5.5 異常 395
21.5.6 示例 395
21.5.7 注意 396
21.6 ssl 396
21.7 SocketServer 399
21.7.1 處理程序 399
21.7.2 服務器 400
21.7.3 定義自定義服務器 401
21.7.4 自定義應用服務器 403
第22章 Internet應用程序編程 404
22.1 ftplib 404
22.2 http包 407
22.2.1 http.client(httplib) 408
22.2.2 http.server(BaseHTTP-Server,CGIHTTPServer,SimpleHTTP Server) 412
22.2.3 http.cookies(Cookie) 416
22.2.4 http.cookiejar(cookielib) 418
22.3 smtplib 418
22.4 urllib包 419
22.4.1 urllib.request(urllib2) 419
22.4.2 urllib.response 423
22.4.3 urllib.parse 424
22.4.4 urllib.error 426
22.4.5 urllib.robotparser(robotparser) 427
22.4.6 注意 427
22.5 xmlrpc包 427
22.5.1 xmlrpc.client(xmlrpclib) 427
22.5.2 xmlrpc.server(Simple-XMLRPCServer,DocXMLR-PCServer) 430
第23章 Web編程 433
23.1 cgi 435
23.1.1 CGI編程建議 438
23.1.2 注意 439
23.2 cgitb 440
23.3 wsgiref 440
23.3.1 WSGI規範 440
23.3.2 wsgiref包 442
23.4 webbrowser 444
第24章 Internet數據處理和編碼 445
24.1 base64 445
24.2 binascii 447
24.3 CSV 447
24.3.1 方言 449
24.3.2 示例 450
24.4 email包 450
24.4.1 解析電子郵件 450
24.4.2 編寫電子郵件 453
24.4.3 注意 456
24.5 hashlib 456
24.6 hmac 456
24.7 HTMLParser 457
24.8 json 460
24.9 mimetypes 462
24.10 quopri 463
24.11 xml包 463
24.11.1 XML示例文檔 464
24.11.2 xml.dom.minidom 465
24.11.3 xml.etree.ElementTree 467
24.11.4 xml.sax 473
24.11.5 xml.sax.saxutils 476
第25章 其他庫模塊 477
25.1 Python服務 477
25.2 字符串處理 478
25.3 操作係統模塊 478
25.4 網絡 478
25.5 Internet數據處理 478
25.6 國際化 479
25.7 多媒體服務 479
25.8 其他 479
第三部分 擴展與嵌入
第26章 擴展與嵌入Python 482
26.1 擴展模塊 482
26.1.1 擴展模塊原型 484
26.1.2 命名擴展模塊 486
26.1.3 編譯與打包擴展 486
26.1.4 從Python到C語言的類型轉換 488
26.1.5 從C到Python的類型轉換 492
26.1.6 給模塊添加值 493
26.1.7 錯誤處理 494
26.1.8 引用計數 495
26.1.9 綫程 496
26.2 嵌入Python解釋器 496
26.2.1 嵌入模闆 497
26.2.2 編譯與鏈接 497
26.2.3 基本的解釋器操作與設置 497
26.2.4 在C語言中訪問Python 498
26.2.5 將Python對象轉換為C對象 499
26.3 ctypes 500
26.3.1 加載共享庫 500
26.3.2 外來函數 500
26.3.3 數據類型 501
26.3.4 調用外來函數 502
26.3.5 其他類型構造方法 503
26.3.6 實用工具函數 504
26.3.7 示例 505
26.4 高級擴展與嵌入 506
26.5 Jython和IronPython 507
附錄 Python 3 508
· · · · · · (
收起)