1. 程式人生 > >Python 3程式開發指南

Python 3程式開發指南

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 28 1.3.2 generate_grid 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 75 2.5.2 csv2html 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 123 3.5.2 statistics 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 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 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