《Python Cookbook(第3版中文版)》是2015年人民郵電出版社出版的圖書,作者是[美] 大衛·比斯利(David Beazley),布萊恩·K.瓊斯(Brian K.Jones)。
基本介紹
- 中文名:Python Cookbook(第3版中文版)
- 作者:[美] 大衛·比斯利(David Beazley),布萊恩·K.瓊斯(Brian K.Jones)
- 譯者:陳舸
- ISBN:9787115379597
- 頁數:684
- 出版社:人民郵電出版社
- 出版時間:2015-05-01
- 開本:16開
- 正文語種:中文
內容簡介,作者簡介,目錄,
內容簡介
《Python Cookbook(第3版)中文版》介紹了Python套用在各個領域中的一些使用技巧和方法,其主題涵蓋了數據結構和算法,字元串和文本,數字、日期和時間,疊代器和生成器,檔案和I/O,數據編碼與處理,函式,類與對象,元編程,模組和包,網路和Web編程,並發,實用腳本和系統管理,測試、調試以及異常,C語言擴展等。
《Python Cookbook(第3版)中文版》覆蓋了Python套用中的很多常見問題,並提出了通用的解決方案。書中包含了大量實用的編程技巧和示例代碼,並在Python 3.3環境下進行了測試,可以很方便地套用到實際項目中去。此外,《Python Cookbook(第3版)中文版》還詳細講解了解決方案是如何工作的,以及為什麼能夠工作。
《Python Cookbook(第3版)中文版》非常適合具有一定編程基礎的Python程式設計師閱讀參考。
作者簡介
David Beazley是一位居住在芝加哥的獨立軟體開發者以及圖書作者。他主要的工作在於編程工具,提供定製化的軟體開發服務,以及為軟體開發者、科學家和工程師教授編程實踐課程。他為人熟知的工作在於Python程式語言,他已為此創建了好幾個開源的軟體包(例如Swig和PLY),並且是備受讚譽的圖書Python Essential Reference的作者。他也對C、C++以及彙編語言下的系統編程有著豐富的經驗。
Brain K. Jones是普林斯頓大學計算機系的一位系統管理員。
目錄
第1章 數據結構和算法 1
1.1 將序列分解為單獨的變數 1
1.2 從任意長度的可疊代對象中分解元素 3
1.3 保存最後N個元素 5
1.4 找到最大或最小的N個元素 7
1.5 實現優先權佇列 9
1.6 在字典中將鍵映射到多個值上 11
1.7 讓字典保持有序 13
1.8 與字典有關的計算問題 14
1.9 在兩個字典中尋找相同點 15
1.10 從序列中移除重複項且保持元素間順序不變 17
1.11 對切片命名 18
1.12 找出序列中出現次數最多的元素 20
1.13 通過公共鍵對字典列表排序 22
1.14 對不原生支持比較操作的對象排序 23
1.15 根據欄位將記錄分組 25
1.16 篩選序列中的元素 26
1.17 從字典中提取子集 29
1.18 將名稱映射到序列的元素中 30
1.19 同時對數據做轉換和換算 33
1.20 將多個映射合併為單個映射 34
第2章 字元串和文本 37
2.1 針對任意多的分隔設定拆分字元串 37
2.2 在字元串的開頭或結尾處做文本匹配 38
2.3 利用Shell通配符做字元串匹配 40
2.4 文本模式的匹配和查找 42
2.5 查找和替換文本 45
2.6 以不區分大小寫的方式對文本做查找和替換 47
2.7 定義實現最短匹配的正則表達式 48
2.8 編寫多行模式的正則表達式 49
2.9 將Unicode文本統一表示為規範形式 50
2.10 用正則表達式處理Unicode字元 52
2.11 從字元串中去掉不需要的字元 53
2.12 文本過濾和清理 54
2.13 對齊文本字元串 57
2.14 字元串連線及合併 59
2.15 給字元串中的變數名做插值處理 62
2.16 以固定的列數重新格式化文本 64
2.17 在文本中處理HTML和XML實體 66
2.18 文本分詞 67
2.19 編寫一個簡單的遞歸下降解析器 70
2.20 在位元組串上執行文本操作 80
第3章 數字、日期和時間 83
3.1 對數值進行取整 83
3.2 執行精確的小數計算 85
3.3 對數值做格式化輸出 87
3.4 同二進制、八進制和十六進制數打交道 89
3.5 從位元組串中打包和解包大整數 90
3.6 複數運算 92
3.7 處理窮大和NaN 94
3.8 分數的計算 96
3.9 處理大型數組的計算 97
3.10 矩陣和線性代數的計算 101
3.11 隨機選擇 103
3.12 時間換算 105
3.13 計算上周5的日期 107
3.14 找出當月的日期範圍 108
3.15 將字元串轉換為日期 110
3.16 處理涉及到時區的日期問題 112
第4章 疊代器和生成器 114
4.1 手動訪問疊代器中的元素 114
4.2 委託疊代 115
4.3 用生成器創建新的疊代模式 116
4.4 實現疊代協定 118
4.5 反向疊代 121
4.6 定義帶有額外狀態的生成器函式 122
4.7 對疊代器做切片操作 123
4.8 跳過可疊代對象中的前一部分元素 124
4.9 疊代所有可能的組合或排列 127
4.10 以索引-值對的形式疊代序列 129
4.11 同時疊代多個序列 131
4.12 在不同的容器中進行疊代 133
4.13 創建處理數據的管道 134
4.14 扁平化處理嵌套型的序列 137
4.15 合併多個有序序列,再對整個有序序列進行疊代 139
4.16 用疊代器取代while循環 140
第5章 檔案和I/O 142
5.1 讀寫文本數據 142
5.2 將輸出重定向到檔案中 145
5.3 以不同的分隔設定或行結尾符完成列印 145
5.4 讀寫二進制數據 146
5.5 對已不存在的檔案執行寫入操作 149
5.6 在字元串上執行I/O操作 150
5.7 讀寫壓縮的數據檔案 151
5.8 對固定大小的記錄進行疊代 152
5.9 將二進制數據讀取到可變緩衝區中 153
5.10 對二進制檔案做記憶體映射 155
5.11 處理路徑名 157
5.12 檢測檔案是否存在 158
5.13 獲取目錄內容的列表 159
5.14 繞過檔案名稱編碼 161
5.15 列印法解碼的檔案名稱 162
5.16 為已經打開的檔案添加或修改編碼方式 164
5.17 將位元組數據寫入文本檔案 166
5.18 將已有的檔案描述符包裝為檔案對象 167
5.19 創建臨時檔案和目錄 169
5.20 同串口進行通信 171
5.21 序列化Python對象 172
第6章 數據編碼與處理 177
6.1 讀寫CSV數據 177
6.2 讀寫JSON數據 181
6.3 解析簡單的XML文檔 186
6.4 以增量方式解析大型XML檔案 188
6.5 將字典轉換為XML 192
6.6 解析、修改和重寫XML 194
6.7 用命名空間來解析XML文檔 196
6.8 同關係型資料庫進行互動 198
6.9 編碼和解碼十六進制數字 201
6.10 Base64編碼和解碼 202
6.11 讀寫二進制結構的數組 203
6.12 讀取嵌套型和大小可變的二進制結構 207
6.13 數據匯總和統計 218
第7章 函式 221
7.1 編寫可接受任意數量參數的函式 221
7.2 編寫只接受關鍵字參數的函式 223
7.3 將元數據信息附加到函式參數上 224
7.4 從函式中返回多個值 225
7.5 定義帶有默認參數的函式 226
7.6 定義匿名或內聯函式 229
7.7 在匿名函式中綁定變數的值 230
7.8 讓帶有N個參數的可調用對象以較少的參數形式調用 232
7.9 用函式替代只有單個方法的類 235
7.10 在回調函式中攜帶額外的狀態 236
7.11 內聯回調函式 240
7.12 訪問定義在閉包內的變數 242
第8章 類與對象 246
8.1 修改實例的字元串表示 246
8.2 自定義字元串的輸出格式 248
8.3 讓對象支持上下文管理協定 249
8.4 當創建大量實例時如何節省記憶體 251
8.5 將名稱封裝到類中 252
8.6 創建可管理的屬性 254
8.7 調用父類中的方法 259
8.8 在子類中擴展屬性 263
8.9 創建一種新形式的類屬性或實例屬性 267
8.10 讓屬性具有惰性求值的能力 271
8.11 簡化數據結構的初始化過程 274
8.12 定義一個接口或抽象基類 278
8.13 實現一種數據模型或類型系統 281
8.14 實現自定義的容器 287
8.15 委託屬性的訪問 291
8.16 在類中定義多個構造函式 296
8.17 不通過調用init來創建實例 298
8.18 用Mixin技術來擴展類定義 299
8.19 實現帶有狀態的對象或狀態機 305
8.20 調用對象上的方法,方法名以字元串形式給出 311
8.21 實現訪問者模式 312
8.22 實現非遞歸的訪問者模式 317
8.23 在環狀數據結構中管理記憶體 324
8.24 讓類支持比較操作 327
8.25 創建快取實例 330
第9章 元編程 335
9.1 給函式添加一個包裝 335
9.2 編寫裝飾器時如何保存函式的元數據 337
9.3 對裝飾器進行解包裝 339
9.4 定義一個可接受參數的裝飾器 341
9.5 定義一個屬性可由用戶修改的裝飾器 342
9.6 定義一個能接收可選參數的裝飾器 346
9.7 利用裝飾器對函式參數強制執行類型檢查 348
9.8 在類中定義裝飾器 352
9.9 把裝飾器定義成類 354
9.10 把裝飾器作用到類和靜態方法上 357
9.11 編寫裝飾器為被包裝的函式添加參數 359
9.12 利用裝飾器給類定義打補丁 362
9.13 利用元類來控制實例的創建 364
9.14 獲取類屬性的定義順序 367
9.15 定義一個能接受可選參數的元類 370
9.16 在*args和**kwargs上強制規定一種參數簽名 372
9.17 在類中強制規定編碼約定 375
9.18 通過編程的方式來定義類 378
9.19 在定義的時候初始化類成員 382
9.20 通過函式註解來實現方法重載 384
9.21 避免出現重複的屬性方法 391
9.22 以簡單的方式定義上下文管理器 393
9.23 執行帶有局部副作用的代碼 395
9.24 解析並分析Python原始碼 398
9.25 將Python源碼分解為位元組碼 402
第10章 模組和包 406
10.1 把模組按層次結構組織成包 406
10.2 對所有符號的導入進行精確控制 407
10.3 用相對名稱來導入包中的子模組 408
10.4 將模組分解成多個檔案 410
10.5 讓各個目錄下的代碼在統一的命名空間下導入 413
10.6 重新載入模組 415
10.7 讓目錄或zip檔案成為可運行的腳本 416
10.8 讀取包中的數據檔案 417
10.9 添加目錄到sys.path中 418
10.10 使用字元串中給定的名稱來導入模組