前言
         第一部分 程序設計語言Python
         第1章 歡迎使用Python 1
         1.1 什麼是Python語言 1
         1.2 Python語言的曆史 1
         1.3 Python語言的特色 1
         1.4 獲得Python語言 5
         1.5 安裝Python語言 6
         1.6 運行Python語言 7
         1.6.1 命令行上的交互式解釋器 7
         1.6.2 命令行上的腳本程序 9
         1.6.3 集成開發環境 10
         1.7 Python語言的文檔 13
         1.8 Python與其他語言的比較 13
         1.9 JPython的特色 14
         1.10 練習 15
         第2章 快速入門 16
         2.1 程序輸齣、print語句和“Hello World !” 16
         2.2 程序輸入和raw_input( ) 內建函數 17
         2.3 程序注釋 17
         2.4 操作符 17
         2.5 變量和賦值 19
         2.6 數字 19
         2.7 字符串 20
         2.8 列錶和錶列 20
         2.9 字典 21
         2.10 代碼段使用縮進 22
         2.11 if語句 22
         2.12 while循環 23
         2.13 for循環和range( )內建函數 23
         2.14 文件和open( )內建函數 25
         2.15 錯誤和例外 26
         2.16 函數 26
         2.17 類 27
         2.18 模塊 29
         2.19 練習 31
         第3章 語法和程序設計風格 34
         3.1 語句和語法 34
         3.2 變量分配 36
         3.3 標識符 38
         3.4 程序設計風格準則 39
         3.4.1 模塊的結構和布局 40
         3.4.2 在主體部分裏加上測試方麵的內容 42
         3.5 內存管理 43
         3.5.1 變量定義 43
         3.5.2 動態確定變量的類型 43
         3.5.3 內存分配 43
         3.5.4 廢棄物迴收 44
         3.5.5 引用計數 44
         3.5.6 del語句 44
         3.5.7 減少引用計數 45
         3.6 第一個Python應用程序 45
         3.7 練習 49
         第4章 對象 50
         4.1 Python語言中的對象 50
         4.2 標準數據類型 51
         4.3 其他內建的數據類型 51
         4.3.1 type類型和type()內建函數 52
         4.3.2 None空類型 52
         4.4 內部數據類型 52
         4.4.1 代碼對象 53
         4.4.2 框架對象 53
         4.4.3 跟蹤記錄對象 53
         4.4.4 序列切片對象 53
         4.4.5 Ellipsis對象 54
         4.4.6 Xrange對象 54
         4.5 與數據類型有關的標準操作符 55
         4.5.1 值的比較 55
         4.5.2 對象實體的比較 56
         4.5.3 布爾錶達式 58
         4.6 與數據類型有關的標準內建函數 59
         4.6.1 cmp( ) 59
         4.6.2 str()和repr() 59
         4.6.3 深入type() 60
         4.7 標準數據類型的分類 63
         4.7.1 存儲模型 64
         4.7.2 修改模型 64
         4.7.3 訪問模型 66
         4.8 Python語言不支持的數據類型 67
         4.9 練習 68
         第5章 數字 69
         5.1 數字簡介 69
         5.2 整數 69
         5.2.1 (普通)整數 70
         5.2.2 長整數 70
         5.3 浮點實數 70
         5.4 復數 71
         5.5 操作符 72
         5.5.1 混狀態操作符 72
         5.5.2 標準類型的操作符 74
         5.5.3 數值類型操作符 74
         5.5.4 *位操作符 76
         5.6 內建函數 77
         5.6.1 標準類型函數 77
         5.6.2 數值類型函數 78
         5.6.3 隻適用於整數的函數 82
         5.7 相關模塊 83
         5.8 練習 85
         第6章 序列:字符串、列錶和錶列 88
         6.1 序列 88
         6.1.1 操作符 88
         6.1.2 內建函數 92
         6.2 字符串 93
         6.3 字符串和操作符 94
         6.3.1 標準類型操作符 94
         6.3.2 序列操作符 95
         6.4 隻作用於字符串的操作符 99
         6.4.1 格式操作符(%) 99
         6.4.2 生字符串操作符(r/R) 102
         6.4.3 Unicode字符串操作符(u/U) 103
         6.5 內建函數 103
         6.5.1 標準類型函數 103
         6.5.2 序列類型函數 104
         6.5.3 字符串類型函數 104
         6.6 字符串的內建方法 104
         6.7 字符串的特性 107
         6.7.1 特殊或控製字符 107
         6.7.2 三引號 108
         6.7.3 字符串的不可變性 109
         6.7.4 Unicode支持 111
         6.7.5 Python語言沒有字符或數組 112
         6.8 相關模塊 113
         6.9 字符串總結 114
         6.10 列錶 115
         6.11 操作符 117
         6.11.1 標準類型操作符 117
         6.11.2 序列類型操作符 117
         6.11.3 列錶類型操作符 120
         6.12 內建函數 120
         6.12.1 標準類型函數 120
         6.12.2 序列類型函數 121
         6.12.3 列錶類型內建函數 123
         6.13 列錶類型的內建方法 123
         6.14 列錶的特性 125
         6.14.1 利用列錶創建其他數據結構 125
         6.14.2 列錶的子類 130
         6.15 錶列 131
         6.16 錶列的操作符和內建函數 132
         6.16.1 標準和序列操作符與內建函數 132
         6.16.2 錶列類型操作符和內建函數及方法 133
         6.17 錶列的特性 133
         6.17.1 不可變性對錶列有何影響 133
         6.17.2 錶列也不是絕對“不可變的” 133
         6.17.3 括號的作用 134
         6.17.4 單元素錶列 135
         6.18 相關模塊 136
         6.19 *淺拷貝與深拷貝 137
         6.20 練習 141
         第7章 字典數據類型 144
         7.1 字典簡介 144
         7.2 操作符 147
         7.2.1 標準類型操作符 147
         7.2.2 字典的鍵字檢索操作符[ ] 147
         7.3 內建函數 148
         7.3.1 標準類型函數type()、str()
         和cmp() 148
         7.3.2 映射類型函數len() 150
         7.4 內建方法 150
         7.5 字典鍵字 152
         7.5.1 不允許一個鍵字對應一個以上的
         數據項 153
         7.5.2 鍵字必須是不可變的 153
         7.6 練習 156
         第8章 條件語句和循環語句 159
         8.1 if語句 159
         8.1.1 多重條件錶達式 159
         8.1.2 單語句子句 159
         8.2 else語句 159
         8.3 elif語句 161
         8.4 while語句 161
         8.4.1 一般語法 161
         8.4.2 計數循環 162
         8.4.3 無限循環 162
         8.4.4 單語句子句 163
         8.5 for語句 163
         8.5.1 一般語法 163
         8.5.2 與序列類型一起使用 163
         8.5.3 switch/case語句的代理 164
         8.5.4 range()內建函數 165
         8.6 break語句 167
         8.7 continue語句 167
         8.8 pass語句 168
         8.9 else語句之二 169
         8.10 練習 170
         第9章 文件和輸入/輸齣操作 173
         9.1 文件對象 173
         9.2 文件的內建函數 173
         9.3 文件的內建方法 175
         9.3.1 輸入 175
         9.3.2 輸齣 175
         9.3.3 文件內移動 175
         9.3.4 其他 176
         9.3.5 其他各種文件方法 176
         9.4 文件的內建屬性 179
         9.5 標準文件 179
         9.6 命令行參數 180
         9.7 文件係統 181
         9.8 文件的執行 186
         9.9 永久性存儲模塊 186
         9.9.1 pickle和marshal模塊 187
         9.9.2 DBM風格的模塊 187
         9.9.3 shelve模塊 187
         9.10 相關模塊 189
         9.11 練習 190
         第10章 錯誤和例外處理 193
         10.1 什麼是例外 193
         10.1.1 錯誤 193
         10.1.2 例外 194
         10.2 Python語言中的例外 194
         10.3 檢測和處理例外 196
         10.3.1 try-except語句 196
         10.3.2 打包一個內建函數 197
         10.3.3 帶多個except的try語句 199
         10.3.4 處理多個例外的except語句 200
         10.3.5 不帶例外名參數的try-except語句 201
         10.3.6 例外參數 202
         10.3.7 把打過包的函數用在一個應用程
         序裏 204
         10.3.8 else從句 206
         10.3.9 try-except語句用法總結 206
         10.3.10 try-finally語句 207
         10.4 *例外的字符串形式 209
         10.5 *例外的類形式 210
         10.5.1 通過對象的標識符進行挑選 211
         10.5.2 例外之間的關係 211
         10.6 引發例外 212
         10.7 確認 214
         10.8 標準例外 215
         10.9 *創建例外 216
         10.10 為什麼會發生例外 222
         10.11 為什麼要有例外 222
         10.12 例外和sys模塊 223
         10.13 相關模塊 224
         10.14 練習 224
         第11章 函數 226
         11.1 什麼是函數 226
         11.1.1 函數與過程的比較 226
         11.1.2 返迴值和函數類型 226
         11.2 函數的調用 228
         11.2.1 函數操作符 228
         11.2.2 關鍵字參數 228
         11.2.3 缺省參數 228
         11.3 函數的創建 229
         11.3.1 def語句 229
         11.3.2 函數聲明與函數定義的比較 229
         11.3.3 嚮前引用 229
         11.4 函數可以用做其他函數的參數 230
         11.5 正式參數 231
         11.5.1 位置參數 232
         11.5.2 缺省參數 232
         11.6 可變長參數 235
         11.6.1 非關鍵字可變長參數 235
         11.6.2 關鍵字可變長參數 236
         11.6.3 調用帶有可變長參數對象的函數 238
         11.7 函數化的程序設計 239
         11.7.1 匿名函數和lambda 239
         11.7.2 內建函數:apply()、filter()、map()、reduce() 241
         11.8 變量的作用範圍 253
         11.8.1 全局變量和局部變量的比較 254
         11.8.2 global語句 255
         11.8.3 作用範圍到底有幾個 255
         11.8.4 作用範圍的其他特性 256
         11.9 *遞歸 257
         11.10 練習 258
         第12章 模塊 261
         12.1 什麼是模塊 261
         12.2 模塊和文件 261
         12.2.1 名字空間基本概念 261
         12.2.2 搜索路徑和路徑搜索 262
         12.3 名字空間 263
         12.3.1 名字空間與變量作用範圍的比較 264
         12.3.2 名字的查找、確定作用範圍和覆蓋 264
         12.4 導入模塊 265
         12.4.1 模塊加載時的執行情況 265
         12.4.2 導入與加載的比較 266
         12.5 導入模塊屬性 266
         12.5.1 把名字導入當前名字空間 266
         12.5.2 被導入到導入者作用範圍的名字 266
         12.6 模塊的內建函數 267
         12.6.1 __import__() 267
         12.6.2 globals()和locals() 268
         12.6.3 reload() 268
         12.7 軟件包 269
         12.7.1 目錄結構 269
         12.7.2 軟件包的from-import語句操作 270
         12.8 模塊的其他特性 270
         12.8.1 自動加載模塊 270
         12.8.2 阻止某個屬性的導入 271
         12.9 練習 271
         第13章 類和OOP 272
         13.1 簡介 272
         13.2 麵嚮對象的程序設計 277
         13.2.1 OOD和OOP之間的聯係 278
         13.2.2 現實世界中的問題 278
         13.2.3 抽象世界裏的模型 279
         13.3 類 281
         13.3.1 類的創建 282
         13.3.2 聲明和定義的比較 282
         13.4 類的屬性 282
         13.4.1 *類的數據屬性 283
         13.4.2 方法 283
         13.4.3 確定類的屬性 284
         13.4.4 類的特殊屬性 285
         13.5 實例 286
         13.5.1 實例化:調用類對象創建實例 287
         13.5.2 __init__() 構造器方法 287
         13.5.3 __del__() 拆除器方法 288
         13.6 實例的屬性 289
         13.6.1 “實例化”實例的屬性 289
         13.6.2 確定實例的屬性 291
         13.6.3 實例的特殊屬性 292
         13.6.4 內建類型的屬性 293
         13.6.5 實例屬性和類屬性的比較 293
         13.7 綁定和方法的調用 295
         13.7.1 調用綁定方法 296
         13.7.2 調用未綁定方法 297
         13.8 構造 298
         13.9 子類的分離和推導 299
         13.10 繼承性 300
         13.10.1 類屬性__bases__ 301
         13.10.2 通過繼承覆蓋掉方法 302
         13.10.3 對標準類型進行推導 303
         13.10.4 多重繼承 304
         13.11 類、實例和其他對象的內建函數 304
         13.11.1 issubclass() 304
         13.11.2 isinstance() 305
         13.11.3 hasattr()、getattr()、setattr()、
         delattr() 307
         13.11.4 dir() 308
         13.11.5 vars() 308
         13.12 類型和類/實例的比較 309
         13.13 用特殊方法對類進行定製 310
         13.13.1 對類進行簡單定製的例子 312
         13.13.2 *對類進行較復雜定製的例子 314
         13.14 私密性 319
         13.15 對類型進行打包 319
         13.15.1 打包 319
         13.15.2 實現對類型進行的打包 320
         13.16 相關模塊和文檔 326
         13.17 練習 328
         第14章 執行環境 333
         14.1 可調用對象 333
         14.1.1 函數 334
         14.1.2 方法 335
         14.1.3 類 337
         14.1.4 類的實例 338
         14.2 代碼對象 338
         14.3 可執行對象語句和內建函數 339
         14.3.1 callable() 339
         14.3.2 compile() 340
         14.3.3 eval() 341
         14.3.4 exec 341
         14.3.5 input() 346
         14.3.6 內置字符串和intern() 347
         14.4 執行其他Python程序 348
         14.4.1 導入 348
         14.4.2 execfile() 349
         14.5 執行其他非Python程序 349
         14.5.1 os.system() 351
         14.5.2 os.popen()隻適用於UNIX和
         Windows 351
         14.5.3 os.fork()、os.exec*()、os.wait*()
         隻適用於UNIX 352
         14.5.4 os.spawn*()隻適用於Windows 354
         14.5.5 其他函數 354
         14.6 受限執行環境 354
         14.7 中斷程序的執行 357
         14.7.1 sys.exit()和SystemExit 357
         14.7.2 sys.exitfunc() 358
         14.7.3 os._exit()函數 359
         14.8 相關模塊 359
         14.9 練習 360
         第二部分 高 級 論 題
         第15章 規則錶達式 361
         15.1 介紹與動機 361
         15.2 規則錶達式使用的特殊符號和字符 363
         15.3 規則錶達式和Python語言 368
         15.3.1 re模塊的核心函數和方法 368
         15.3.2 re模塊的其他函數和方法 375
         15.4 規則錶達式的使用示例 379
         15.5 練習 385
         第16章 網絡程序設計 388
         16.1 介紹 388
         16.1.1 什麼是客戶-服務器體係結構 388
         16.1.2 客戶-服務器網絡程序設計 390
         16.2 套接字:通信端點 391
         16.2.1 什麼是套接字 391
         16.2.2 套接字地址:主機加端口 391
         16.2.3 麵嚮連接方式和無連接方式 392
         16.3 使用Python語言進行網絡程序設計 393
         16.3.1 socket()模塊函數 393
         16.3.2 套接字對象的內建方法 393
         16.3.3 創建一個TCP服務器 394
         16.3.4 創建一個TCP客戶 396
         16.3.5 執行TCP客戶-服務器應用程序 397
         16.3.6 創建一個UDP服務器 398
         16.3.7 創建一個UDP客戶 399
         16.3.8 執行UDP客戶-服務器應用程序 400
         16.3.9 其他socket模塊函數 401
         16.4 相關模塊 401
         16.5 練習 402
         第17章 多綫程程序設計 404
         17.1 介紹 404
         17.2 綫程和進程 405
         17.2.1 什麼是進程 405
         17.2.2 什麼是綫程 405
         17.3 綫程和Python 406
         17.3.1 全局性解釋器鎖 406
         17.3.2 退齣綫程 407
         17.3.3 從Python訪問綫程 407
         17.3.4 不使用綫程時的程序設計情況 407
         17.3.5 Python語言中的綫程化模塊 408
         17.4 thread模塊 409
         17.5 threading模塊 412
         17.5.1 Thread類 413
         17.5.2 菲波那契數列、階乘、連加和 418
         17.5.3 製造商-消費者問題和Queue模塊 419
         17.6 練習 422
         第18章 使用Tkinter進行GUI程序設計 423
         18.1 介紹 423
         18.1.1 什麼是Tcl、Tk和Tkinter 423
         18.1.2 安裝Tkinter並使它工作 423
         18.1.3 再論客戶-服務器體係結構 424
         18.2 Tkinter和Python程序設計 424
         18.2.1 Tkinter模塊:把Tk添加到應用
         程序中去 424
         18.2.2 GUI程序設計簡介 425
         18.2.3 頂層窗口:Tkinter.Tk() 426
         18.2.4 Tk素材 426
         18.3 Tkinter程序示例 427
         18.3.1 Label素材 427
         18.3.2 Button素材 428
         18.3.3 Label和Button素材 429
         18.3.4 Label、Button和Scale素材 430
         18.3.5 中規模Tkinter程序示例 431
         18.4 相關模塊和其他GUI 436
         18.5 練習 436
         第19章 Web程序設計 438
         19.1 介紹 438
         19.1.1 網上衝浪:客戶-服務器計算 438
         19.1.2 因特網 439
         19.2 用Python網上衝浪:編寫簡單的Web
         客戶 441
         19.2.1 統一資源定位器 441
         19.2.2 urlparse模塊 442
         19.2.3 urllib模塊 443
         19.3 高級Web客戶 446
         19.4 CGI:幫助Web服務器處理客戶數據 451
         19.4.1 CGI簡介 451
         19.4.2 CGI應用程序 452
         19.4.3 cgi模塊 452
         19.5 建立CGI應用程序 453
         19.5.1 製作結果網頁 453
         19.5.2 製作錶單和結果主頁 456
         19.5.3 完全以交互方式運行的Web站點 459
         19.6 高級CGI 464
         19.6.1 包含多個組成部分的錶單的提交
         操作和文件的上傳 464
         19.6.2 多取值輸入域 465
         19.6.3 cookie 465
         19.6.4 高級CGI實戰 466
         19.7 Web服務器 474
         19.8 相關模塊 477
         19.9 練習 478
         第20章 擴展Python語言 483
         20.1 介紹 483
         20.1.1 什麼是擴展 483
         20.1.2 為什麼要擴展Python語言 483
         20.2 用編寫擴展的辦法擴展Python語言 484
         20.2.1 編寫應用程序代碼 484
         20.2.2 給代碼加上程序接口 486
         20.2.3 編譯 490
         20.2.4 引用的計數 494
         20.2.5 綫程化和GIL方麵的考慮 495
         20.3 相關論題 495
         20.4 練習 496
         第三部分 附 錄
         附錄A 部分練習答案 497
         附錄B 參考信息 503
         附錄C Python操作符匯總 511
         附錄D Python版本2.0的新增功能 513
      · · · · · ·     (
收起)