第1章 快速上手:基礎知識 1
         1.1 交互式解釋器 1
         1.2 算法是什麼 2
         1.3 數和錶達式 3
         1.4 變量 5
         1.5 語句 5
         1.6 獲取用戶輸入 7
         1.7 函數 8
         1.8 模塊 8
         1.8.1 cmath和復數 9
         1.8.2 迴到未來 10
         1.9 保存並執行程序 10
         1.9.1 從命令提示符運行Python腳本 12
         1.9.2 讓腳本像普通程序一樣 12
         1.9.3 注釋 13
         1.10 字符串 13
         1.10.1 單引號字符串以及對引號轉義 14
         1.10.2 拼接字符串 15
         1.10.3 字符串錶示str和repr 15
         1.10.4 長字符串、原始字符串和字節 16
         1.11 小結 21
         1.11.1 本章介紹的新函數 21
         1.11.2 預告 22
         第2章 列錶和元組 23
         2.1 序列概述 23
         2.2 通用的序列操作 24
         2.2.1 索引 24
         2.2.2 切片 26
         2.2.3 序列相加 28
         2.2.4 乘法 28
         2.2.5 成員資格 29
         2.3 列錶:Python的主力 31
         2.3.1 函數list 31
         2.3.2 基本的列錶操作 31
         2.3.3 列錶方法 33
         2.4 元組:不可修改的序列 38
         2.5 小結 39
         2.5.1 本章介紹的新函數 40
         2.5.2 預告 40
         第3章 使用字符串 41
         3.1 字符串基本操作 41
         3.2 設置字符串的格式:精簡版 41
         3.3 設置字符串的格式:完整版 43
         3.3.1 替換字段名 43
         3.3.2 基本轉換 44
         3.3.3 寬度、精度和韆位分隔符 45
         3.3.4 符號、對齊和用0填充 46
         3.4 字符串方法 48
         3.4.1 center 48
         3.4.2 find 48
         3.4.3 join 49
         3.4.4 lower 50
         3.4.5 replace 51
         3.4.6 split 51
         3.4.7 strip 51
         3.4.8 translate 52
         3.4.9 判斷字符串是否滿足特定的條件 52
         3.5 小結 53
         3.5.1 本章介紹的新函數 53
         3.5.2 預告 53
         第4章 當索引行不通時 54
         4.1 字典的用途 54
         4.2 創建和使用字典 55
         4.2.1 函數dict 55
         4.2.2 基本的字典操作 55
         4.2.3 將字符串格式設置功能用於字典 57
         4.2.4 字典方法 58
         4.3 小結 63
         4.3.1 本章介紹的新函數 63
         4.3.2 預告 63
         第5章 條件、循環及其他語句 64
         5.1 再談print和import 64
         5.1.1 打印多個參數 64
         5.1.2 導入時重命名 65
         5.2 賦值魔法 66
         5.2.1 序列解包 66
         5.2.2 鏈式賦值 67
         5.2.3 增強賦值 67
         5.3 代碼塊:縮進的樂趣 68
         5.4 條件和條件語句 69
         5.4.1 這正是布爾值的用武之地 69
         5.4.2 有條件地執行和if語句 70
         5.4.3 else子句 70
         5.4.4 elif子句 71
         5.4.5 代碼塊嵌套 71
         5.4.6 更復雜的條件 71
         5.4.7 斷言 75
         5.5 循環 76
         5.5.1 while循環 77
         5.5.2 for循環 77
         5.5.3 迭代字典 78
         5.5.4 一些迭代工具 78
         5.5.5 跳齣循環 80
         5.5.6 循環中的else子句 82
         5.6 簡單推導 83
         5.7 三人行 84
         5.7.1 什麼都不做 84
         5.7.2 使用del刪除 85
         5.7.3 使用exec和eval執行字符串及計算其結果 86
         5.8 小結 88
         5.8.1 本章介紹的新函數 89
         5.8.2 預告 89
         第6章 抽象 90
         6.1 懶惰是一種美德 90
         6.2 抽象和結構 91
         6.3 自定義函數 91
         6.3.1 給函數編寫文檔 92
         6.3.2 其實並不是函數的函數 93
         6.4 參數魔法 93
         6.4.1 值從哪裏來 94
         6.4.2 我能修改參數嗎 94
         6.4.3 關鍵字參數和默認值 98
         6.4.4 收集參數 100
         6.4.5 分配參數 102
         6.4.6 練習使用參數 103
         6.5 作用域 105
         6.6 遞歸 107
         6.6.1 兩個經典案例:階乘和冪 108
         6.6.2 另一個經典案例:二分查找 109
         6.7 小結 112
         6.7.1 本章介紹的新函數 113
         6.7.2 預告 113
         第7章 再談抽象 114
         7.1 對象魔法 114
         7.1.1 多態 115
         7.1.2 多態和方法 116
         7.1.3 封裝 118
         7.1.4 繼承 119
         7.2 類 119
         7.2.1 類到底是什麼 119
         7.2.2 創建自定義類 120
         7.2.3 屬性、函數和方法 121
         7.2.4 再談隱藏 122
         7.2.5 類的命名空間 123
         7.2.6 指定超類 124
         7.2.7 深入探討繼承 125
         7.2.8 多個超類 126
         7.2.9 接口和內省 127
         7.2.10 抽象基類 128
         7.3 關於麵嚮對象設計的一些思考 130
         7.4 小結 130
         7.4.1 本章介紹的新函數 131
         7.4.2 預告 131
         第8章 異常 132
         8.1 異常是什麼 132
         8.2 讓事情沿你指定的軌道齣錯 132
         8.2.1 raise語句 132
         8.2.2 自定義的異常類 133
         8.3 捕獲異常 134
         8.3.1 不用提供參數 134
         8.3.2 多個except子句 136
         8.3.3 一箭雙雕 136
         8.3.4 捕獲對象 137
         8.3.5 一網打盡 137
         8.3.6 萬事大吉時 138
         8.3.7 最後 139
         8.4 異常和函數 140
         8.5 異常之禪 140
         8.6 不那麼異常的情況 142
         8.7 小結 143
         8.7.1 本章介紹的新函數 143
         8.7.2 預告 143
         第9章 魔法方法、特性和迭代器 144
         9.1 如果你使用的不是Python 3 144
         9.2 構造函數 145
         9.2.1 重寫普通方法和特殊的構造函數 146
         9.2.2 調用未關聯的超類構造函數 147
         9.2.3  使用函數super 148
         9.3 元素訪問 149
         9.3.1 基本的序列和映射協議 150
         9.3.2 從list、dict和str派生 152
         9.4 其他魔法方法 153
         9.5 特性 153
         9.5.1 函數property 154
         9.5.2 靜態方法和類方法 155
         9.5.3 __getattr__、__setattr__等方法 156
         9.6 迭代器 157
         9.6.1 迭代器協議 157
         9.6.2 從迭代器創建序列 159
         9.7 生成器 159
         9.7.1 創建生成器 159
         9.7.2 遞歸式生成器 161
         9.7.3 通用生成器 162
         9.7.4 生成器的方法 162
         9.7.5 模擬生成器 163
         9.8 八皇後問題 164
         9.8.1 生成器的迴溯 164
         9.8.2 問題 165
         9.8.3 狀態錶示 166
         9.8.4 檢測衝突 166
         9.8.5 基綫條件 166
         9.8.6 遞歸條件 167
         9.8.7 掃尾工作 169
         9.9 小結 170
         9.9.1 本章介紹的新函數 170
         9.9.2 預告 171
         第10章 開箱即用 172
         10.1 模塊 172
         10.1.1 模塊就是程序 172
         10.1.2 模塊是用來下定義的 174
         10.1.3 讓模塊可用 176
         10.1.4 包 177
         10.2 探索模塊 178
         10.2.1 模塊包含什麼 178
         10.2.2 使用help獲取幫助 179
         10.2.3 文檔 180
         10.2.4 使用源代碼 181
         10.3 標準庫:一些深受歡迎的模塊 181
         10.3.1 sys 181
         10.3.2 os 183
         10.3.3 fileinput 185
         10.3.4 集閤、堆和雙端隊列 186
         10.3.5 time 190
         10.3.6 random 192
         10.3.7 shelve和json 195
         10.3.8 re 198
         10.3.9 其他有趣的標準模塊 210
         10.4 小結 211
         10.4.1 本章介紹的新函數 212
         10.4.2 預告 212
         第11章 文件 213
         11.1 打開文件 213
         11.2 文件的基本方法 214
         11.2.1 讀取和寫入 215
         11.2.2 使用管道重定嚮輸齣 215
         11.2.3 讀取和寫入行 217
         11.2.4 關閉文件 217
         11.2.5 使用文件的基本方法 218
         11.3 迭代文件內容 220
         11.3.1 每次一個字符(或字節) 220
         11.3.2 每次一行 221
         11.3.3 讀取所有內容 221
         11.3.4 使用fileinput實現延遲行迭代 221
         11.3.5 文件迭代器 222
         11.4 小結 223
         11.4.1 本章介紹的新函數 223
         11.4.2 預告 224
         第12章 圖形用戶界麵 225
         12.1 創建GUI示例應用程序 225
         12.1.1 初探 226
         12.1.2 布局 227
         12.1.3 事件處理 228
         12.1.4 最終的程序 229
         12.2 使用其他GUI工具包 230
         12.3 小結 231
         第13章 數據庫支持 232
         13.1 Python數據庫API 232
         13.1.1 全局變量 233
         13.1.2 異常 234
         13.1.3 連接和遊標 234
         13.1.4 類型 236
         13.2 SQLite和PySQLite 236
         13.2.1 起步 237
         13.2.2 數據庫應用程序示例 238
         13.3 小結 241
         13.3.1 本章介紹的新函數 241
         13.3.2 預告 241
         第14章 網絡編程 242
         14.1 幾個網絡模塊 242
         14.1.1 模塊socket 242
         14.1.2 模塊urllib和urllib2 244
         14.1.3 其他模塊 246
         14.2 SocketServer及相關的類 247
         14.3 多個連接 247
         14.3.1 使用SocketServer實現分叉和綫程化 249
         14.3.2 使用select和poll實現異步I/O 249
         14.4 Twisted 252
         14.4.1 下載並安裝Twisted 252
         14.4.2 編寫Twisted服務器 253
         14.5 小結 254
         14.5.1 本章介紹的新函數 255
         14.5.2 預告 255
         第15章 Python和Web 256
         15.1 屏幕抓取 256
         15.1.1 Tidy和XHTML解析 257
         15.1.2 Beautiful Soup 261
         15.2 使用CGI創建動態網頁 262
         15.2.1 第一步:準備Web服務器 262
         15.2.2 第二步:添加!#行 263
         15.2.3 第三步:設置文件權限 264
         15.2.4 CGI安全風險 264
         15.2.5 簡單的CGI腳本 264
         15.2.6 使用cgitb進行調試 265
         15.2.7 使用模塊cgi 266
         15.2.8 簡單的錶單 267
         15.3 使用Web框架 269
         15.4 Web服務:更高級的抓取 270
         15.4.1 RSS和相關內容 270
         15.4.2 使用XML-RPC進行遠程過程調用 271
         15.4.3 SOAP 272
         15.5 小結 272
         15.5.1 本章介紹的新函數 272
         15.5.2 預告 272
         第16章 測試基礎 273
         16.1 先測試再編碼 273
         16.1.1 準確的需求說明 273
         16.1.2 做好應對變化的準備 275
         16.1.3 測試四步麯 275
         16.2 測試工具 276
         16.2.1 doctest 276
         16.2.2 unittest 278
         16.3 超越單元測試 280
         16.3.1 使用PyChecker和PyLint檢查源代碼 280
         16.3.2 性能分析 283
         16.4 小結 284
         16.4.1 本章介紹的新函數 285
         16.4.2 預告 285
         第17章 擴展Python 286
         17.1 魚和熊掌兼得 286
         17.2 簡單易行的方式:Jython和IronPython 287
         17.3 編寫C語言擴展 289
         17.3.1 SWIG 291
         17.3.2 手工編寫擴展 294
         17.4 小結 298
         17.4.1 本章介紹的新函數 299
         17.4.2 預告 299
         第18章 程序打包 300
         18.1 Setuptools基礎 300
         18.2 打包 302
         18.3 編譯擴展 303
         18.4 使用py2exe創建可執行程序 304
         18.5 小結 304
         18.5.1 本章介紹的新函數 305
         18.5.2 預告 305
         第19章 趣味編程 306
         19.1 為何要有趣 306
         19.2 編程柔術 306
         19.3 原型設計 307
         19.4 配置 308
         19.4.1 提取常量 308
         19.4.2 配置文件 309
         19.5 日誌 311
         19.6 如果你已不勝其煩 312
         19.7 如果你想深入學習 312
         19.8 小結 313
         第20章 項目1:自動添加標簽 315
         20.1 問題描述 315
         20.2 有用的工具 316
         20.3 準備工作 316
         20.4 初次實現 317
         20.4.1 找齣文本塊 317
         20.4.2 添加一些標記 318
         20.5 再次實現 319
         20.5.1 處理程序 320
         20.5.2 處理程序的超類 320
         20.5.3 規則 322
         20.5.4 規則的超類 323
         20.5.5 過濾器 323
         20.5.6 解析器 323
         20.5.7 創建規則和過濾器 324
         20.5.8 整閤起來 327
         20.6 進一步探索 331
         第21章 項目2:繪製圖錶 332
         21.1 問題描述 332
         21.2 有用的工具 332
         21.3 準備工作 333
         21.4 初次實現 333
         21.4.1 使用ReportLab繪圖 334
         21.4.2 繪製摺綫 335
         21.4.3 編寫原型 335
         21.5 再次實現 337
         21.5.1 獲取數據 337
         21.5.2 使用LinePlot類 337
         21.6 進一步探索 339
         第22章 項目3:萬能的XML 340
         22.1 問題描述 340
         22.2 有用的工具 341
         22.3 準備工作 341
         22.4 初次實現 343
         22.4.1 創建簡單的內容處理程序 343
         22.4.2 創建HTML頁麵 345
         22.5 再次實現 347
         22.5.1 分派器混閤類 347
         22.5.2 將首部和尾部寫入文件的方法以及默認處理程序 349
         22.5.3 支持目錄 349
         22.5.4 事件處理程序 350
         22.6 進一步探索 352
         第23章 項目4:新聞匯總 353
         23.1 問題描述 353
         23.2 有用的工具 354
         23.3 準備工作 354
         23.4 初次實現 354
         23.5 再次實現 356
         23.6 進一步探索 362
         第24章 項目5:虛擬茶話會 364
         24.1 問題描述 364
         24.2 有用的工具 364
         24.3 準備工作 365
         24.4 初次實現 366
         24.4.1 ChatServer類 366
         24.4.2 ChatSession類 367
         24.4.3 整閤起來 369
         24.5 再次實現 371
         24.5.1 基本的命令解釋功能 371
         24.5.2 聊天室 372
         24.5.3 登錄和退齣聊天室 372
         24.5.4 主聊天室 373
         24.5.5 新的服務器 373
         24.6 進一步探索 378
         第25章 項目6:使用CGI進行遠程編輯 379
         25.1 問題描述 379
         25.2 有用的工具 379
         25.3 準備工作 380
         25.4 初次實現 380
         25.5 再次實現 381
         25.5.1 創建文件名錶單 381
         25.5.2 編寫編輯器腳本 382
         25.5.3 編寫保存腳本 383
         25.5.4 運行編輯器 384
         25.6 進一步探索 386
         第26章 項目7:自建公告闆 387
         26.1 問題描述 387
         26.2 有用的工具 387
         26.3 準備工作 388
         26.4 初次實現 389
         26.5 再次實現 393
         26.5.1 編寫腳本main.cgi 394
         26.5.2 編寫腳本view.cgi 395
         26.5.3 編寫腳本edit.cgi 396
         26.5.4 編寫腳本save.cgi 398
         26.5.5 嘗試使用 399
         26.6 進一步探索 400
         第27章 項目8:使用XML-RPC共享文件 401
         27.1 問題描述 401
         27.2 有用的工具 402
         27.3 準備工作 403
         27.4 初次實現 403
         27.4.1 實現簡單的節點 403
         27.4.2 嘗試使用 408
         27.5 再次實現 409
         27.5.1 創建客戶端界麵 410
         27.5.2 引發異常 410
         27.5.3 驗證文件名 411
         27.5.4 嘗試使用 415
         27.6 進一步探索 415
         第28章 項目9:使用GUI共享文件 417
         28.1 問題描述 417
         28.2 有用的工具 417
         28.3 準備工作 417
         28.4 初次實現 417
         28.5 再次實現 419
         28.6 進一步探索 422
         第29章 項目10:自製街機遊戲 423
         29.1 問題描述 423
         29.2 有用的工具 424
         29.2.1 pygame 424
         29.2.2 pygame.locals 424
         29.2.3 pygame.display 424
         29.2.4 pygame.font 425
         29.2.5 pygame.sprite 425
         29.2.6 pygame.mouse 425
         29.2.7 pygame.event 425
         29.2.8 pygame.image 426
         29.3 準備工作 426
         29.4 初次實現 426
         29.5 再次實現 429
         29.6 進一步探索 438
         附錄A 簡明教程 440
         附錄B Python參考手冊 447
      · · · · · ·     (
收起)