Python 3高級教程(第3版)
[美]J.伯頓·布朗寧(J.Burton Browning),[美]馬蒂·阿爾金(Marty Alchin) 著; 楊慶麟 譯
買這商品的人也買了...
-
$450$405 -
$480$379 -
$450$356 -
$450$356 -
$450$338 -
$354$336 -
$480$379 -
$441Python設計模式
-
$580$458 -
$520$411 -
$380$300 -
$403Python 函數式編程, 2/e (Functional Python Programming: Discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads, 2/e)
-
$330$297 -
$658Python 數據可視化之美:專業圖表繪制指南 (全彩)
-
$420$332 -
$505Python 數據可視化 (Data Visualization with Python: Your guide to understanding your data)
-
$450$356 -
$480$360 -
$580$493 -
$750$638 -
$480$379 -
$450$338 -
$450$356 -
$480$379 -
$520$390
相關主題
商品描述
目錄大綱
目 錄
第1章 原理與哲學 1
1.1 Python之禪 1
1.1.1 優美勝於醜陋 3
1.1.2 明瞭勝於晦澀 3
1.1.3 簡潔勝於復雜 4
1.1.4 復雜勝於難以理解 5
1.1.5 扁平勝於嵌套 5
1.1.6 寬松勝於緊湊 6
1.1.7 可讀性很重要 7
1.1.8 即便是特例,也不可違背這些規則 8
1.1.9 實用性勝於純粹性 8
1.1.10 錯誤永遠不應該悄無聲息地過去 9
1.1.11 除非明確地沉默 10
1.1.12 面對模棱兩可的情況,拒絕猜測的誘惑 11
1.1.13 應該有一種(最好只有一種)顯而易見的方法 12
1.1.14 盡管這種方式起初可能並不明顯,除非你是荷蘭人 13
1.1.15 做比不做要好 13
1.1.16 不假思索就動手還不如不做 14
1.1.17 如果實現難以解釋,那就是一個糟糕的想法 14
1.1.18 如果實現容易解釋,則可能是一個好主意 14
1.1.19 命名空間是一個很棒的想法,讓我們做更多這樣的事情吧 15
1.2 不要重復自己 15
1.3 松耦合 16
1.4 武士原則 16
1.5 帕累托原則 17
1.6 穩健性原則 17
1.7 向後兼容性 19
1.8 小結 19
第2章 基礎知識 20
2.1 總體概念 20
2.1.1 迭代 20
2.1.2 緩存 22
2.1.3 透明度 23
2.2 流程控制 23
2.2.1 捕獲異常 24
2.2.2 異常鏈 27
2.2.3 當一切順利的時候 29
2.2.4 繼續執行,無論異常如何 31
2.2.5 優化循環 32
2.2.6 with語句 33
2.2.7 條件表達式 34
2.3 迭代 36
2.3.1 序列解包 37
2.3.2 列表解析式 39
2.3.3 生成器表達式 40
2.3.4 集合解析式 41
2.3.5 字典解析式 41
2.3.6 將迭代器鏈接在一起 42
2.3.7 將迭代器壓縮在一起 42
2.4 容器數據類型 43
2.4.1 集合 43
2.4.2 命名元組 48
2.4.3 有序字典 48
2.4.4 帶有默認值的字典 49
2.5 導入代碼 50
2.5.1 回退(備用)導入 50
2.5.2 從即將發布的版本中導入 51
2.5.3 使用__all__進行自定義導入 52
2.5.4 相對導入 54
2.5.5 __import__()函數 54
2.5.6 importlib模塊 57
2.6 令人興奮的Python擴展:NIST的隨機數信標 57
2.6.1 如何安裝NIST信標庫 58
2.6.2 示例:獲取值 58
2.6.3 示例:模擬拋硬幣並記錄每次正反面的結果 59
2.7 小結 59
第3章 函數 60
3.1 參數 61
3.1.1 規劃時的靈活性 61
3.1.2 可變位置參數 62
3.1.3 可變關鍵字參數 63
3.1.4 組合不同類型的參數 64
3.1.5 調用具有可變參數的函數 67
3.1.6 傳遞參數 67
3.1.7 自省 69
3.1.8 示例:標識參數值 70
3.1.9 示例:一個更簡潔的版本 72
3.1.10 示例:驗證參數 75
3.2 裝飾器 76
3.2.1 閉包 78
3.2.2 包裝器 80
3.2.3 帶參數的裝飾器 81
3.2.4 帶參數或不帶參數的裝飾器 83
3.2.5 示例:記憶化 85
3.2.6 示例:用於創建裝飾器的裝飾器 86
3.3 函數註解 88
3.3.1 示例:類型安全 89
3.3.2 提取樣板 97
3.3.3 示例:類型強制轉換 100
3.3.4 用裝飾器進行註解 102
3.3.5 示例:將類型安全作為裝飾器 102
3.4 生成器 107
3.5 lambda 109
3.6 自省 110
3.6.1 標識對象類型 111
3.6.2 模塊和軟件包 112
3.6.3 文檔字符串 112
3.7 令人興奮的Python擴展:統計 115
3.7.1 安裝Pandas和matplotlib 115
3.7.2 創建文本文件 115
3.7.3 使用Pandas顯示數據 116
3.7.4 進行一些數據分析 116
3.7.5 使用matplotlib進行繪圖 117
3.7.6 圖表的類型 117
3.7.7 將matplotlib與Pandas結合起來 118
3.8 小結 118
第4章 類 119
4.1 繼承 119
4.1.1 多重繼承 122
4.1.2 方法解析順序 123
4.1.3 示例:C3算法 127
4.1.4 使用super()函數將控制權傳遞給其他類 134
4.1.5 自省 137
4.2 如何創建類 139
4.2.1 在運行時創建類 140
4.2.2 元類 141
4.2.3 示例:插件框架 142
4.2.4 控制命名空間 145
4.3 成員變量 147
4.3.1 屬性 147
4.3.2 描述器 149
4.4 方法 152
4.4.1 非綁定方法 152
4.4.2 綁定方法 153
4.5 魔術方法 156
4.5.1 創建實例 157
4.5.2 示例:自動化子類 158
4.5.3 處理成員變量 159
4.5.4 字符串表示 162
4.6 令人興奮的Python擴展:迭代器 164
4.7 小結 166
第5章 通用協議 167
5.1 基本運算 167
5.1.1 數學運算 169
5.1.2 按位運算 173
5.1.3 運算符的變體 175
5.2 數字 177
5.2.1 符號運算 180
5.2.2 比較運算 180
5.3 可迭代對象 181
5.4 序列 186
5.5 映射 191
5.6 _call_()方法 192
5.7 上下文管理器 193
5.8 令人興奮的Python擴展:Scrapy 195
5.8.1 安裝Scrapy 196
5.8.2 運行Scrapy 196
5.8.3 項目設置 196
5.8.4 使用Scrapy獲取Web數據 197
5.8.5 通過Scrapy瀏覽網頁 198
5.8.6 shell選項 198
5.9 小結 199
第6章 對象管理 200
6.1 命名空間字典 201
6.1.1 示例:Borg模式 201
6.1.2 示例:自緩存屬性 205
6.2 垃圾回收 209
6.2.1 引用計數 210
6.2.2 循環引用 211
6.2.3 弱引用 214
6.3 Python對象的序列化 216
6.4 復制 221
6.4.1 淺層復制 222
6.4.2 深層復制 224
6.5 令人興奮的Python擴展:Beautiful Soup 226
6.5.1 安裝Beautiful Soup 226
6.5.2 使用Beautiful Soup 226
6.6 小結 227
第7章 字符串 228
7.1 字節字符串 228
7.1.1 借助chr()和ord()進行簡單的轉換 229
7.1.2 借助struct模塊進行復雜的轉換 230
7.2 文本 233
7.2.1 Unicode 234
7.2.2 編碼 234
7.3 簡單的替換 236
7.4 格式化 238
7.4.1 在對象中查找值 240
7.4.2 區分字符串類型 240
7.4.3 標準格式規範 240
7.4.4 為文本文檔製作目錄 242
7.4.5 自定義格式規範 244
7.5 令人興奮的Python擴展:feedparser庫 245
7.5.1 如何安裝feedparser庫 245
7.5.2 如何使用feedparser庫 245
7.6 小結 246
第8章 文檔的編寫 247
8.1 恰當地命名 247
8.2 註釋 248
8.3 文檔字符串 249
8.3.1 描述函數的作用 250
8.3.2 解釋參數 250
8.3.3 返回值 250
8.3.4 包含預期的異常 251
8.4 代碼之外的文檔 251
8.4.1 安裝與配置 251
8.4.2 教程 251
8.4.3 參考文檔 252
8.5 用於編寫文檔的實用工具 252
8.5.1 格式化 253
8.5.2 鏈接 254
8.5.3 Sphinx 256
8.6 令人興奮的Python擴展:NumPy 256
8.6.1 安裝NumPy 256
8.6.2 使用NumPy 257
8.6.3 使用NumPy數組 258
8.6.4 統計度量 258
8.7 小結 259
第9章 測試 260
9.1 測試驅動開發 260
9.2 doctest 261
9.2.1 格式化代碼 261
9.2.2 呈現輸出 262
9.2.3 與文檔集成 263
9.2.4 運行測試 263
9.3 unittest模塊 265
9.3.1 初始化配置 265
9.3.2 編寫測試 266
9.3.3 其他比較 270
9.3.4 測試字符串和其他序列內容 270
9.3.5 測試異常 271
9.3.6 測試對象標識 273
9.3.7 釋放資源 273
9.4 提供自定義的測試類 274
9.5 令人興奮的Python擴展:Pillow庫 274
9.5.1 如何安裝Pillow庫 275
9.5.2 圖像顯示:確定文件的大小和類型並顯示 275
9.5.3 圖像處理:裁剪圖像的一部分 275
9.5.4 圖像處理:改變圖像的方向 276
9.5.5 圖像處理:濾鏡 276
9.6 小結 276
第10章 發布 277
10.1 許可證 277
10.1.1 GNU通用公共許可證 277
10.1.2 Affero通用公共許可證 279
10.1.3 GNU 寬通用公共許可證 279
10.1.4 伯克利軟件發行許可證 280
10.1.5 其他許可證 280
10.2 打包 281
10.2.1 setup.py 282
10.2.2 MANIFEST.in 284
10.2.3 sdist命令 285
10.3 發布 286
10.4 令人興奮的Python擴展:secrets模塊 288
10.4.1 隨機數 288
10.4.2 密碼生成器 288
10.5 小結 289
第11章 構建CSV框架sheets 290
11.1 構建聲明性框架 291
11.1.1 聲明性編程簡介 291
11.1.2 是否構建聲明性框架 292
11.2 構建框架 293
11.2.1 管理選項 294
11.2.2 定義字段 297
11.2.3 將字段附加到類 298
11.2.4 添加元類 300
11.2.5 整合 303
11.3 字段排序 304
11.3.1 DeclarativeMeta.__prepare__() 305
11.3.2 Column.__init__() 307
11.3.3 Column.__new__() 310
11.3.4 CounterMeta.__call__() 311
11.3.5 挑選選項 313
11.4 構建字段庫 313
11.4.1 StringField(字符串字段) 315
11.4.2 IntegerColumn(整數列) 315
11.4.3 FloatColumn(浮點數列) 316
11.4.4 DecimalColumn(小數列) 316
11.4.5 DateColumn(日期列) 317
11.5 回到CSV 321
11.5.1 檢查參數 322
11.5.2 填充值 324
11.5.3 讀取器 327
11.5.4 寫入器 331
11.6 小結 334