內容簡介
本書是Python程式語言的傑出參考手冊,書中詳盡講解了Python核心和Python庫中重要的部分。全書分為三個部分,首部分涉及類型與對象,運算符與表達式,程式結構與控制流,函式與函式式編程,類與面向對象編程,模組、包與分發,輸入與輸出,測試、調試、探查與調優等與Python語言相關的內容;第 二部分涉及內置函式和異常、運行時服務、數學運算、數據結構、算法與代碼最佳化,字元串和文本處理,資料庫訪問,檔案和目錄處理,作業系統服務,執行緒與並發,網路編程與套接字,網路應用程式編程,Web編程,網路數據處理和編碼、其他庫模組等與Python庫相關的內容;第三部分涉及擴展和嵌入Python等內容。此外,書中還包括一些Python官方文檔或其他參考資料中未提及的高 級主題。
圖書目錄
第 一部分 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 表示程式結構的內置類型 38
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.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 作用域規則 78
6.4 作為對象與閉包的函式 79
6.5 裝飾器 82
6.6 生成器與yield 83
6.7 協程與yield表達式 85
6.8 使用生成器與協程 87
6.9 列表推導 89
6.10 生成器表達式 90
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.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 195
13.11.1 示例 196
13.11.2 注意 196
第 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.1.5 注意 202
14.2 fractions 203
14.3 math 204
14.4 numbers 205
14.5 random 206
14.5.1 種子和初始化 206
14.5.2 隨機整數 206
14.5.3 隨機序列 207
14.5.4 實值隨機分布 207
14.5.5 注意 208
第 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 codecs 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 注意 281
19.6 io 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 基本配置 286
19.7.3 Logger對象 288
19.7.4 處理器對象 292
19.7.5 訊息格式化 294
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.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 325
19.14.1 例子 327
19.14.2 注意 328
19.15 time 328
19.16 winreg 330
第 20章 執行緒與並發 334
20.1 基本概念 334
20.2 並發編程與Python 335
20.3 multiprocessing 336
20.3.1 進程 336
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.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章 網路應用程式編程 404
22.1 ftplib 404
22.2 http包 407
22.2.1 http.client(httplib) 408
22.2.2 http.server(BaseHTTPServer、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(SimpleXMLRPCServer和DocXMLRPCServer) 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章 網路數據處理和編碼 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 458
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 468
24.11.4 xml.sax 474
24.11.5 xml.sax.saxutils 476
第 25章 其他庫模組 477
25.1 Python服務 477
25.2 字元串處理 478
25.3 作業系統模組 478
25.4 網路 478
25.5 網路數據處理 478
25.6 國際化 478
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