購物比價找書網找車網
FindBook  
 有 1 項符合

Python編程從新手到高手

的圖書
Python編程從新手到高手 Python編程從新手到高手

作者:(賈森·C.麥克唐納 / 譯者:周琦 
出版社:人民郵電出版社
出版日期:2025-07-01
語言:簡體中文   規格:平裝 / 530頁 / 19 x 26 x 2.65 cm / 普通級/ 1-1
圖書選購
型式價格供應商所屬目錄
 
$ 626
博客來 博客來
其他
圖書介紹 - 資料來源:博客來   評分:
圖書名稱:Python編程從新手到高手

內容簡介

本書全面細緻地介紹了Python的各個功能、邏輯和慣用模式,以便讀者快速編寫出專業、地道、實用的Python程式,從Python新手成長為高手。

本書共5個部分。第一部分“Python環境”講解Python的哲學、開發環境、基本語法、專案結構和代碼導入等內容,為讀者編寫規範的Python代碼奠定堅實的基礎。第二部分“基本結構”講解Python的變數、數據類型、函數、類、物件、錯誤和異常等。第三部分“數據和流程”講解操作數據和控制執行流程的許多獨特方法,包括集合、迭代、生成器、推導式、文本輸入/輸出、上下文管理、二進位和序列化等。第四部分“高級概念”探索Python的高級策略,如繼承、混入、元類、抽象基類、自省、泛型、非同步、併發、執行緒和並行等。第五部分“超越代碼”講解項目的打包、分發、調試、日誌、測試和剖析等環節,並概述Python開發的方向。
 
 

作者介紹

賈森·C. 麥克唐納(Jason C. McDonald,網路id為CodeMouse92)

擁有十餘年軟體工程經驗,曾作為開發者或管理者在多家公司工作,經歷過各種類型的專案,並多次在員工培訓、技術會議和大學中進行軟體發展、管理和職業發展等主題的演講和教學。他還是Ubuntu社區、開放源碼倡議和Python軟件基金會的成員,以及DEV社區的版主。
 

目錄

第一部分 Python環境
第1章 Python的哲學 ... 2
1.1 到底什麼是Python? ... 2
1.2 破除誤解:Python不是什麼 ... 2
1.2.1 誤解1:Python僅僅是一種指令碼語言 ... 3
1.2.2 誤解2:Python很慢 ... 3
1.2.3 誤解3:Python不能被編譯 ... 3
1.2.4 誤解4:Python在後臺編譯 ... 4
1.2.5 誤解5:Python不適合大型項目 ... 4
1.3 Python 2 vs Python 3 ... 4
1.4 定義“Pythonic”代碼 ... 5
1.5 Python之禪 ... 5
1.6 文檔、PEP和你 ... 6
1.7 社區中誰說了算? ... 7
1.8 Python社區 ... 7
1.9 對“明顯的方式”的追求 ... 8
1.10 本章小結 ... 9
第2章 Python開發環境 ... 10
2.1 安裝Python ... 10
2.1.1 在Windows系統中安裝Python ... 10
2.1.2 在macOS系統中安裝Python ... 11
2.1.3 在Linux系統中安裝Python ... 11
2.1.4 通過源代碼構建Python ... 11
2.2 認識Python解譯器 ... 13
2.2.1 互動式會話 ... 13
2.2.2 運行Python文件 ... 14
2.3 包和虛擬環境 ... 14
2.3.1 創建一個虛擬環境 ... 15
2.3.2 啟動虛擬環境 ... 15
2.3.3 退出虛擬環境 ... 16
2.4 pip介紹 ... 16
2.4.1 系統範圍的包 ... 16
2.4.2 安裝包 ... 16
2.4.3 requirements.txt ... 17
2.4.4 更新包 ... 17
2.4.5 卸載包 ... 17
2.4.6 搜索包 ... 18
2.4.7 一個關於pip的警告 ... 18
2.5 虛擬環境和Git ... 18
2.5.1 shebang ... 19
2.5.2 文件編碼 ... 20
2.6 一些額外的關於虛擬環境的小貼士 ... 21
2.6.1 在不啟動虛擬環境的情況下使用虛擬環境 ... 21
2.6.2 一些替代品 ... 21
2.7 認識PEP 8 ... 22
2.7.1 行寬限制的歷史債務 ... 22
2.7.2 定位字元還是空格 ... 23
2.8 代碼品質控制:靜態分析工具 ... 23
2.8.1 Pylint ... 23
2.8.2 Flake8 ... 25
2.8.3 Mypy ... 26
2.9 代碼風格守護者:自動格式化工具 ... 26
2.9.1 autopep8 ... 27
2.9.2 Black ... 27
2.10 測試框架 ... 27
2.11 代碼編輯器一覽 ... 27
2.11.1 IDLE ... 28
2.11.2 Emacs和Vim ... 28
2.11.3 PyCharm ... 28
2.11.4 Visual Studio Code ... 28
2.11.5 Sublime Text ... 29
2.11.6 Spyder ... 29
2.11.7 Eclipse配合PyDev/LiClipse ... 29
2.11.8 Eric Python IDE ... 29
2.12 本章小結 ... 30
第3章 語法速成課程 ... 31
3.1 “Hello, world!”程式 ... 31
3.2 語句和運算式 ... 31
3.3 空格的重要性 ... 32
3.4 空語句 ... 33
3.5 注釋以及文檔字符串 ... 33
3.6 聲明變數 ... 34
3.7 數學操作 ... 35
3.7.1 初識數字類型 ... 35
3.7.2 運算符 ... 36
3.7.3 math模組 ... 37
3.8 邏輯 ... 38
3.8.1 條件陳述式 ... 38
3.8.2 比較運算符 ... 39
3.8.3 Boolean、None和身份運算符 ... 39
3.8.4 真實性 ... 40
3.8.5 邏輯運算符 ... 41
3.8.6 海象運算符 ... 41
3.8.7 省略符 ... 42
3.9 字符串 ... 42
3.9.1 字符串字面量 ... 42
3.9.2 原始字符串 ... 44
3.9.3 格式化字符串 ... 44
3.9.4 範本字符串 ... 48
3.9.5 字符串轉換 ... 49
3.9.6 字符串拼接的注意事項 ... 49
3.10 函數 ... 50
3.11 類和對象 ... 50
3.12 異常處理 ... 51
3.13 元組和列表 ... 52
3.14 迴圈 ... 53
3.14.1 while迴圈 ... 53
3.14.2 迴圈控制 ... 53
3.14.3 for迴圈 ... 54
3.15 結構模式匹配 ... 54
3.15.1 文字模式和萬用字元 ... 54
3.15.2 or模式 ... 55
3.15.3 捕獲模式 ... 55
3.15.4 門衛語句 ... 56
3.15.5 更多關於模式匹配的資訊 ... 57
3.16 本章小結 ... 57
第4章 專案結構和代碼導入 ... 58
4.1 設置代碼倉庫 ... 58
4.2 模組和包 ... 58
4.2.1 PEP 8和命名 ... 59
4.2.2 專案的目錄結構 ... 59
4.3 import是如何工作的 ... 60
4.4 導入操作的注意事項 ... 61
4.4.1 從模組中導入函數 ... 62
4.4.2 覆蓋問題 ... 62
4.4.3 包嵌套問題 ... 63
4.4.4 謹防導入所有 ... 64
4.5 在專案中使用import ... 65
4.5.1 絕對導入 ... 65
4.5.2 相對導入 ... 66
4.5.3 從同一個包中導入 ... 66
4.6 入口點 ... 67
4.6.1 模組入口點 ... 67
4.6.2 包入口點 ... 68
4.6.3 控制包的導入 ... 69
4.6.4 程式入口點 ... 70
4.7 Python模組搜索路徑 ... 71
4.8 導入模組時底層發生了什麼? ... 71
4.9 本章小結 ... 73

第二部分 基本結構
第5章 變數和數據類型 ... 76
5.1 Python中的變數:名稱和值 ... 76
5.2 賦值 ... 76
5.3 數據類型 ... 78
5.3.1 type()函數 ... 79
5.3.2 鴨子類型 ... 79
5.4 作用域和垃圾回收 ... 80
5.4.1 局部作用域以及引用計數垃圾回收器 ... 80
5.4.2 解譯器關閉 ... 81
5.4.3 全域作用域 ... 81
5.4.4 全域作用域的注意事項 ... 83
5.4.5 nonlocal關鍵字 ... 83
5.4.6 作用域解析 ... 84
5.4.7 關於類的一些特殊情況 ... 84
5.4.8 分代垃圾回收器 ... 85
5.5 不可變的真相 ... 85
5.6 賦值傳遞 ... 86
5.7 集合和引用 ... 87
5.7.1 淺拷貝 ... 89
5.7.2 深拷貝 ... 91
5.8 隱式類型轉換和顯式類型轉換 ... 92
5.9 關於匈牙利命名法的注意事項 ... 93
5.10 術語回顧 ... 94
5.11 本章小結 ... 95
第6章 函數和匿名函數 ... 96
6.1 Python函數基礎 ... 98
6.2 遞迴 ... 99
6.3 默認參數值 ... 100
6.4 關鍵字參數 ... 102
6.5 重載函數 ... 104
6.6 可變參數 ... 104
6.7 僅關鍵字參數 ... 106
6.7.1 僅位置參數 ... 106
6.7.2 參數類型:都在這兒了! ... 107
6.8 嵌套函數 ... 107
6.9 閉包 ... 108
6.9.1 帶閉包的遞迴 ... 109
6.9.2 有狀態閉包 ... 110
6.10 lambda運算式 ... 111
6.10.1 為什麼lambda運算式很有用? ... 111
6.10.2 將lambda運算式作為排序鍵 ... 113
6.11 裝飾器 ... 114
6.12 類型提示及函數注解 ... 116
6.12.1 鴨子類型和類型提示 ... 118
6.12.2 應該使用類型提示嗎? ... 118
6.13 本章小結 ... 119
第7章 類和對象 ... 120
7.1 聲明一個類 ... 121
7.1.1 初始化器 ... 121
7.1.2 構造器 ... 122
7.1.3 終端子 ... 123
7.2 屬性 ... 124
7.2.1 實例屬性 ... 124
7.2.2 類屬性 ... 124
7.3 範圍命名約定 ... 125
7.3.1 非公共屬性 ... 125
7.3.2 公共屬性 ... 125
7.3.3 名稱修飾 ... 125
7.3.4 公共屬性、非公共屬性,還是名稱修飾? ... 126
7.4 方法 ... 127
7.4.1 實例方法 ... 127
7.4.2 類方法 ... 127
7.4.3 靜態方法 ... 128
7.5 特性 ... 128
7.5.1 設置場景 ... 129
7.5.2 定義一個特性 ... 130
7.5.3 使用裝飾器創建特性 ... 132
7.5.4 什麼時候不使用特性? ... 133
7.6 特殊方法 ... 134
7.6.1 場景設置 ... 134
7.6.2 轉換方法 ... 135
7.6.3 比較方法 ... 138
7.6.4 二元運算符支持 ... 139
7.6.5 一元運算符支持 ... 140
7.6.6 讓類可調用 ... 141
7.6.7 更多特殊方法 ... 141
7.7 類裝飾器 ... 142
7.8 物件的結構模式匹配 ... 143
7.9 函數式程式設計和物件導向程式設計 ... 145
7.10 什麼時候使用類? ... 146
7.10.1 類不是模組 ... 146
7.10.2 單一職責 ... 146
7.10.3 共用狀態 ... 146
7.10.4 物件是否適合你? ... 146
7.11 本章小結 ... 147
第8章 錯誤和異常 ... 148
8.1 Python中的異常 ... 148
8.2 閱讀異常資訊 ... 150
8.3 捕獲異常:LBYL和EAFP ... 151
8.4 多異常處理 ... 152
8.5 當心“尿布反模式” ... 153
8.6 拋出異常 ... 155
8.7 使用異常 ... 157
8.7.1 異常和日誌 ... 158
8.7.2 冒泡 ... 161
8.7.3 異常鏈 ... 162
8.8 else和finally ... 164
8.8.1 else:如果所有功能正常運行 ... 164
8.8.2 finally:在所有語句之後 ... 165
8.9 創建異常 ... 168
8.10 異常一覽 ... 169
8.11 本章小結 ... 170

第三部分 數據和流程
第9章 集合與反覆運算 ... 172
9.1 迴圈 ... 172
9.1.1 while迴圈 ... 172
9.1.2 for迴圈 ... 174
9.2 集合 ... 174
9.2.1 元組 ... 174
9.2.2 具名元組 ... 175
9.2.3 列表 ... 175
9.2.4 雙端佇列 ... 177
9.2.5 可變集合 ... 178
9.2.6 不可變集合 ... 179
9.2.7 字典 ... 179
9.2.8 檢查還是例外? ... 180
9.2.9 字典變體 ... 181
9.3 集合的解包 ... 182
9.3.1 星號運算式 ... 183
9.3.2 字典的解包 ... 184
9.4 集合的結構模式匹配 ... 185
9.5 以索引或鍵訪問元素 ... 186
9.6 切片符 ... 187
9.6.1 開始和停止 ... 188
9.6.2 負索引 ... 188
9.6.3 步長 ... 189
9.6.4 切片複製 ... 190
9.6.5 切片對象 ... 190
9.6.6 對自訂對象切片 ... 191
9.6.7 使用islice() ... 191
9.7 in運算符 ... 191
9.8 檢驗集合的長度 ... 192
9.9 反覆運算 ... 193
9.9.1 可反覆運算對象和反覆運算器 ... 193
9.9.2 手動使用反覆運算器 ... 194
9.9.3 用for迴圈進行反覆運算 ... 196
9.9.4 在迴圈中對集合進行排序 ... 197
9.9.5 枚舉迴圈 ... 198
9.9.6 迴圈中的突變 ... 198
9.9.7 嵌套迴圈和替代方案 ... 200
9.10 反覆運算工具 ... 202
9.10.1 基礎內建工具 ... 202
9.10.2 filter ... 202
9.10.3 map ... 203
9.10.4 zip ... 204
9.10.5 itertools ... 205
9.11 自訂可反覆運算類 ... 205
9.12 本章小結 ... 209
第10章 生成器和推導式 ... 210
10.1 惰性求值和貪婪反覆運算 ... 210
10.2 無限反覆運算器 ... 211
10.3 生成器 ... 211
10.3.1 生成器vs反覆運算器類 ... 213
10.3.2 生成器關閉 ... 215
10.3.3 行為關閉 ... 216
10.3.4 異常拋出 ... 217
10.4 yield from ... 219
10.5 生成器運算式 ... 220
10.5.1 生成器對象都是惰性的 ... 222
10.5.2 生成器運算式具有複合迴圈 ... 222
10.5.3 生成器運算式中的條件 ... 223
10.5.4 嵌套生成器運算式 ... 226
10.6 列表推導式 ... 226
10.7 集合推導式 ... 227
10.8 字典推導式 ... 228
10.9 生成器運算式的隱患 ... 228
10.9.1 它們很快就會變得不可讀 ... 228
10.9.2 它們無法替代迴圈 ... 229
10.9.3 它們很難調試 ... 230
10.9.4 何時用生成器運算式 ... 230
10.10 簡單協程 ... 231
10.10.1 從協程返回值 ... 233
10.10.2 行為序列 ... 233
10.11 非同步又如何? ... 234
10.12 本章小結 ... 234
第11章 文本輸入/輸出和上下文管理 ... 235
11.1 標準輸入和輸出 ... 235
11.1.1 重溫print() ... 235
11.1.2 重溫input() ... 239
11.2 流 ... 240
11.3 上下文管理器基礎 ... 241
11.4 檔模式 ... 242
11.5 讀取文件 ... 243
11.5.1 read()方法 ... 243
11.5.2 readline()方法 ... 244
11.5.3 readlines()方法 ... 244
11.5.4 反覆運算讀取 ... 245
11.6 流位置 ... 245
11.7 寫入文件 ... 246
11.7.1 write()方法 ... 247
11.7.2 writelines()方法 ... 248
11.7.3 用print()寫文件 ... 249
11.7.4 行分隔符號 ... 250
11.8 上下文管理器的細節 ... 250
11.8.1 上下文管理器如何工作? ... 250
11.8.2 使用多個上下文管理器 ... 251
11.8.3 實現上下文管理協議 ... 252
11.8.4 __enter__()方法 ... 253
11.8.5 __exit__()方法 ... 254
11.8.6 使用自訂類 ... 254
11.9 路徑 ... 256
11.9.1 路徑物件 ... 257
11.9.2 路徑組成 ... 258
11.9.3 創建路徑 ... 261
11.9.4 相對路徑 ... 262
11.9.5 相對包路徑 ... 263
11.9.6 路徑操作 ... 265
11.9.7 異地文件寫入 ... 266
11.9.8 os模組 ... 267
11.10 檔案格式 ... 268
11.10.1 JSON ... 268
11.10.2 其他格式 ... 271
11.11 本章小結 ... 273
第12章 二進位和序列化 ... 274
12.1 二進位表示和位元運算 ... 274
12.1.1 數字系統 ... 274
12.1.2 Python整數和二進位 ... 278
12.1.3 位運算 ... 279
12.2 位元組字面量 ... 281
12.3 類位元組物件 ... 282
12.3.1 創建位元組物件 ... 282
12.3.2 使用int.to_bytes() ... 284
12.3.3 序列操作 ... 285
12.3.4 將位元組物件轉換為整數 ... 285
12.4 struct模組 ... 286
12.4.1 struct格式字符串和打包 ... 286
12.4.2 用struct解包 ... 289
12.4.3 struct對象 ... 290
12.5 類位元組物件的位元運算 ... 291
12.5.1 通過整數進行位運算 ... 291
12.5.2 通過反覆運算進行位運算 ... 292
12.6 memoryview ... 294
12.7 讀寫二進位檔案 ... 295
12.7.1 數據組織 ... 296
12.7.2 文件寫入 ... 299
12.7.3 從二進位檔案讀取 ... 300
12.7.4 從二進位流中查找 ... 302
12.7.5 BufferedRWPair ... 303
12.8 序列化技術 ... 303
12.8.1 禁忌工具:pickle、marshal和shelve ... 304
12.8.2 序列化格式 ... 305
12.9 本章小結 ... 307

第四部分 高級概念
第13章 繼承和混入 ... 310
13.1 何時使用繼承? ... 312
13.2 Python的基礎繼承 ... 313
13.3 多繼承 ... 315
13.3.1 方法解析順序 ... 315
13.3.2 確保方法解析順序一致 ... 318
13.3.3 顯式地指定解析順序 ... 321
13.3.4 解析多繼承中的基類 ... 321
13.4 混入 ... 324
13.5 本章小結 ... 326
第14章 元類和抽象基類 ... 327
14.1 元類 ... 327
14.1.1 用類型創建類 ... 327
14.1.2 自訂元類 ... 329
14.2 用鴨子類型進行類型推導 ... 330
14.2.1 EAFP:捕獲異常 ... 330
14.2.2 LBYL:檢查屬性 ... 331
14.3 抽象基類 ... 332
14.3.1 內置抽象基類 ... 333
14.3.2 從抽象基類派生 ... 333
14.3.3 實現自訂抽象基類 ... 336
14.4 虛擬子類 ... 338
14.4.1 設置示例 ... 339
14.4.2 使用虛擬子類 ... 341
14.5 本章小結 ... 343
第15章 自省和泛型 ... 344
15.1 特殊屬性 ... 344
15.2 內建物件屬性訪問:__dict__特殊屬性 ... 344
15.2.1 列出屬性 ... 346
15.2.2 獲取屬性 ... 347
15.2.3 檢查屬性 ... 348
15.2.4 設置屬性 ... 349
15.2.5 刪除屬性 ... 350
15.3 函數屬性 ... 351
15.3.1 函數屬性的錯誤使用方式 ... 351
15.3.2 可變性和函數屬性 ... 353
15.4 描述符 ... 353
15.4.1 描述符協議 ... 354
15.4.2 編寫描述符類(有點問題的方式) ... 354
15.4.3 使用描述符 ... 355
15.4.4 以正確方式編寫描述符類 ... 356
15.4.5 在同一個類中使用多個描述符 ... 358
15.5 slots ... 360
15.5.1 將屬性名綁定到值 ... 361
15.5.2 通過slots使用任意屬性 ... 361
15.5.3 slots和繼承 ... 362
15.6 不可變類 ... 362
15.7 單分派泛型函數 ... 365
15.7.1 用類型提示註冊單分派泛型函數 ... 365
15.7.2 用顯式類型註冊單分派泛型函數 ... 366
15.7.3 用register()方法註冊單分派泛型函數 ... 367
15.8 使用元素類 ... 367
15.9 任意執行 ... 368
15.10 本章小結 ... 370
第16章 非同步和併發 ... 371
16.1 Python中的非同步 ... 372
16.2 示例場景:Collatz遊戲同步版本 ... 374
16.3 非同步 ... 376
16.3.1 原生協程 ... 376
16.3.2 任務 ... 378
16.3.3 事件迴圈 ... 379
16.3.4 令其(實際上)非同步 ... 380
16.4 調度和非同步執行流程 ... 381
16.5 非同步反覆運算 ... 383
16.6 非同步上下文管理器 ... 385
16.7 非同步生成器 ... 385
16.8 其他非同步概念 ... 386
16.9 本章小結 ... 386
第17章 線程和並行 ... 387
17.1 線程 ... 387
17.1.1 併發vs並行 ... 387
17.1.2 基本線程 ... 388
17.1.3 超時 ... 390
17.1.4 守護線程 ... 391
17.1.5 futures和執行器 ... 391
17.1.6 futures的超時 ... 393
17.2 條件競爭 ... 395
17.2.1 條件競爭示例 ... 397
17.2.2 用ThreadPoolExecutor創建多線程 ... 398
17.3 鎖 ... 399
17.4 鎖死、活鎖和饑鎖 ... 400
17.5 用佇列傳遞消息 ... 401
17.6 多工作線程的future ... 402
17.7 多進程實現並行 ... 404
17.7.1 序列化數據 ... 404
17.7.2 加速注意事項和ProcessPoolExecutor ... 405
17.8 生產者/消費者問題 ... 407
17.8.1 導入模組 ... 407
17.8.2 監視佇列 ... 408
17.8.3 子進程清理 ... 408
17.8.4 消費者 ... 409
17.8.5 檢查空佇列 ... 410
17.8.6 生產者 ... 410
17.8.7 啟動進程 ... 411
17.8.8 性能結果 ... 411
17.8.9 多進程日誌 ... 412
17.9 本章小結 ... 412

第五部分 超越代碼
第18章 打包和分發 ... 416
18.1 規劃打包 ... 416
18.1.1 貨物崇拜式程式設計的危險 ... 417
18.1.2 關於打包的觀點 ... 417
18.1.3 確定打包目標 ... 417
18.2 專案結構:src或src-less ... 419
18.3 用setuptools打包和分發 ... 419
18.3.1 專案檔案和結構 ... 420
18.3.2 元數據歸屬 ... 420
18.3.3 README.md和LICENSE文檔 ... 420
18.3.4 setup.cfg文件 ... 421
18.3.5 setup.py文件 ... 426
18.3.6 MANIFEST.in文件 ... 427
18.3.7 requirements.txt文件 ... 428
18.3.8 pyproject.toml文件 ... 429
18.3.9 測試配置的設置 ... 430
18.4 構建你的包 ... 430
18.5 發佈到pip ... 431
18.5.1 上傳到TestPyPI ... 431
18.5.2 安裝你上傳的包 ... 432
18.5.3 上傳到PyPI ... 433
18.6 其他打包工具 ... 433
18.6.1 Poetry ... 433
18.6.2 Flit ... 433
18.7 分發給最終用戶 ... 433
18.7.1 PEX ... 434
18.7.2 凍結器 ... 434
18.7.3 鏡像和容器 ... 435
18.7.4 原生Linux包注意事項 ... 437
18.8 文檔 ... 438
18.9 本章小結 ... 439
第19章 調試和日誌 ... 440
19.1 警告 ... 440
19.1.1 警告的類型 ... 441
19.1.2 過濾警告 ... 442
19.1.3 將警告轉換為異常 ... 443
19.2 日誌記錄 ... 444
19.2.1 Logger對象 ... 444
19.2.2 Handler對象 ... 445
19.2.3 日誌記錄級別 ... 447
19.2.4 控制日誌級別 ... 448
19.2.5 運行示例程式 ... 449
19.2.6 篩檢程式、格式化程式和設定檔 ... 450
19.3 斷言語句 ... 450
19.3.1 正確使用斷言 ... 450
19.3.2 錯誤使用斷言 ... 452
19.3.3 實戰中的斷言 ... 453
19.4 inspect模組 ... 454
19.5 使用pdb ... 454
19.5.1 調試案例 ... 454
19.5.2 啟動調試器 ... 455
19.5.3 調試器shell指令 ... 456
19.5.4 單步穿行代碼 ... 456
19.5.5 設置中斷點並單步執行函數 ... 457
19.5.6 遍歷執行棧 ... 458
19.5.7 探查源代碼 ... 459
19.5.8 檢驗解決方案 ... 460
19.5.9 事後調試 ... 461
19.6 使用faulthandler ... 462
19.7 用Bandit評估程式安全性 ... 463
19.8 向Python開發團隊彙報問題 ... 465
19.9 本章小結 ... 466
第20章 測試和剖析 ... 467
20.1 什麼是TDD? ... 467
20.2 測試框架 ... 467
20.3 示例項目 ... 468
20.4 測試和專案結構 ... 469
20.5 基礎測試 ... 470
20.5.1 啟動示例 ... 470
20.5.2 單元測試 ... 471
20.5.3 用pytest執行測試 ... 472
20.5.4 測試異常 ... 473
20.6 測試夾具 ... 474
20.6.1 繼續之前的示例:使用API ... 476
20.6.2 在測試模組間共用數據 ... 477
20.7 不穩定測試和有條件忽略測試 ... 478
20.8 高級夾具:模擬和參數化 ... 479
20.8.1 繼續之前的示例:表達拼寫錯誤 ... 479
20.8.2 參數化 ... 481
20.8.3 間接參數化夾具 ... 482
20.8.4 動態替換類比輸入 ... 483
20.8.5 標記 ... 484
20.8.6 從標準流中捕獲 ... 486
20.8.7 GUI測試 ... 488
20.8.8 繼續之前的示例:將API連接到Typo ... 488
20.8.9 自動夾具 ... 489
20.8.10 混合參數化 ... 490
20.8.11 模糊測試 ... 491
20.8.12 完成示例 ... 491
20.9 代碼覆蓋率 ... 492
20.10 用tox進行自動化測試 ... 494
20.11 基準測試和性能分析 ... 496
20.11.1 用timeit進行基準測試 ... 496
20.11.2 用cProfile或profile進行性能分析 ... 497
20.11.3 tracemalloc ... 500
20.12 本章小結 ... 501
第21章 前路迢迢 ... 502
21.1 關於未來 ... 502
21.2 你想出發去哪兒? ... 503
21.2.1 Python應用程式開發 ... 503
21.2.2 Python遊戲開發 ... 504
21.2.3 Python Web開發 ... 504
21.2.4 客戶端Python ... 505
21.2.5 Python數據科學 ... 505
21.2.6 Python機器學習 ... 506
21.2.7 安全 ... 507
21.2.8 Python嵌入式開發 ... 508
21.2.9 腳本 ... 508
21.3 Python特色 ... 508
21.4 開發Python本身 ... 509
21.4.1 開發Python包和工具 ... 509
21.4.2 開發Python擴展 ... 510
21.4.3 為Python做各種貢獻 ... 511
21.5 和Python共同成長 ... 512
21.5.1 提出問題 ... 512
21.5.2 回答問題 ... 513
21.5.3 用戶組 ... 513
21.5.4 PyLadies ... 514
21.5.5 參加各種會議 ... 514
21.5.6 加入Python軟體基金會 ... 514
21.6 在這條路上一直走下去 ... 515

附錄A 特殊方法和屬性 ... 516
附錄B pdb指令 ... 522
附錄C Guido van Rossum的國王節演講 ... 525
譯者後記 ... 529
 

詳細資料

  • ISBN:9787115659743
  • 規格:平裝 / 530頁 / 19 x 26 x 2.65 cm / 普通級 / 1-1
  • 出版地:中國
贊助商廣告
 
金石堂 - 今日66折
落月迷香(下)完
作者:四葉鈴蘭
出版社:東佑文化事業有限公司
出版日期:2014-01-08
66折: $ 165 
金石堂 - 今日66折
獨庶醫格(三)
作者:淺綠
出版社:東佑文化事業有限公司
出版日期:2018-06-13
66折: $ 165 
金石堂 - 今日66折
庶女有毒(六)
作者:秦簡
出版社:東佑文化事業有限公司
出版日期:2014-10-17
66折: $ 165 
 
金石堂 - 暢銷排行榜
安達與島村(2)
作者:入間人間
出版社:台灣角川股份有限公司
出版日期:2026-04-23
$ 111 
Taaze 讀冊生活 - 暢銷排行榜
ROMEO羅密歐(5)
作者:わたなべあじあ
出版社:東立
出版日期:2026-04-15
$ 133 
金石堂 - 暢銷排行榜
脫離日常後想做的事(全)
作者:雪子
出版社:台灣角川股份有限公司
出版日期:2026-04-23
$ 111 
金石堂 - 暢銷排行榜
相伴細雨停落前(全)
作者:幾田むぎ
出版社:青文出版社股份有限公司
出版日期:2026-04-30
$ 110 
 
Taaze 讀冊生活 - 新書排行榜
中年財富覺醒︰活用低利槓桿,月領10萬元股利的窮大叔翻身筆記
作者:謝富旭
出版社:今周刊出版社股份有限公司
出版日期:2026-04-28
$ 315 
金石堂 - 新書排行榜
轉過頭,幫你擦眼淚 CP寫真書
作者:踢帕娛樂
出版社:台灣角川股份有限公司
出版日期:2026-04-23
$ 474 
Taaze 讀冊生活 - 新書排行榜
成年人的幸福是安靜的
作者:泰洙태수
出版社:英屬維京群島商高寶國際有限公司台灣分公司
出版日期:2026-03-25
$ 280 
Taaze 讀冊生活 - 新書排行榜
圖解基礎醫學:從吃飯、呼吸到情緒反應,讀懂身體如何運作
作者:Kevin Chen
出版社:博碩文化股份有限公司
出版日期:2026-02-26
$ 550 
 

©2026 FindBook.com.tw -  購物比價  找書網  找車網  服務條款  隱私權政策