Python編程輕鬆進階

Python編程輕鬆進階

《Python編程輕鬆進階》是2022年人民郵電出版社出版的圖書,作者是[美] 阿爾·斯維加特(Al Sweigart)。

基本介紹

  • 中文名:Python編程輕鬆進階
  • 作者:[美] 阿爾·斯維加特(Al Sweigart)
  • 出版時間:2022年6月1日
  • 出版社:人民郵電出版社
  • ISBN:9787115592422
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

本書分為三大部分,總計17章。第一部分(第1~2章)介紹了基礎知識,包括如何配置開發環境和在網上尋求幫助。第二部分(第3~14章)介紹了Python編程的最佳實踐、實用工具和技巧,不僅涵蓋了如何編寫高質量的Python代碼、什麼是高級的Python語法、如何使用專業開發者所用的命令行工具,還介紹了性能測量和大O算法分析,並用遊戲實例演示了什麼是最佳實踐。第三部分(第15~17章)介紹了面向對象的Python,內容包括如何編寫類、什麼是類的繼承,以及Python獨有的面向對象功能。

圖書目錄

第 一部分 起步
第 1章 處理錯誤和尋求幫助 2
1.1 如何理解Python錯誤信息 2
1.1.1 檢查回溯信息 2
1.1.2 搜尋錯誤信息 5
1.2 藉助linter 避免錯誤 7
1.3 如何尋求編程幫助 8
1.3.1 預先提供信息以避免反覆補充 9
1.3.2 以實際問題的形式陳述問題 9
1.3.3 在合適的網站上提出你的問題 9
1.3.4 在標題中概述你的問題 9
1.3.5 說明代碼的預期目的 9
1.3.6 包含完整的錯誤信息 9
1.3.7 分享全部代碼 10
1.3.8 通過適當的格式化增強代碼可讀性 11
1.3.9 告訴幫忙者已經嘗試過的方法 11
1.3.10 描述你的設定信息 12
1.4 樣例:如何尋求幫助 12
1.5 小結 13
第 2章 環境設定和命令行 14
2.1 檔案系統 14
2.1.1 Python中的路徑 15
2.1.2 主目錄 16
2.1.3 當前工作目錄 16
2.1.4 絕對路徑和相對路徑 17
2.2 程式和進程 18
2.3 命令行 18
2.3.1 打開終端視窗 19
2.3.2 使用命令行運行程式 20
2.3.3 使用命令行參數 21
2.3.4 在命令行中使用-c 運行Python代碼 22
2.3.5 從命令行運行Python 程式 23
2.3.6 運行py.exe 程式 23
2.3.7 在Python 程式中運行命令 23
2.3.8 使用Tab 補全命令減少輸入量 24
2.3.9 查看歷史命令 24
2.3.10 使用常用命令 25
2.4 環境變數和PATH 32
2.4.1 查看環境變數 32
2.4.2 使用PATH 環境變數 33
2.4.3 更改命令行的PATH 環境變數 34
2.4.4 在Windows 上將資料夾永久添加到PATH 34
2.4.5 在macOS 和Linux 上將資料夾永久添加到PATH 35
2.5 不藉助命令行運行Python 程式 36
2.5.1 在Windows 上運行Python程式 36
2.5.2 在macOS 上運行Python 程式 37
2.5.3 在Ubuntu Linux 上運行Python程式 37
2.6 小結 38
第二部分 最佳實踐、工具和技巧
第3章 使用Black 進行代碼格式化 40
3.1 讓程式設計師招人煩的錯誤做法 40
3.2 風格指南和PEP 8 41
3.3 水平間距 41
3.3.1 使用空格進行縮進 41
3.3.2 行內間距 42
3.4 垂直間距 45
3.4.1 垂直間距示例 46
3.4.2 垂直間距的最佳實踐 46
3.5 Black:毫不妥協的代碼格式化工具 48
3.5.1 安裝Black 48
3.5.2 在命令行中運行Black 48
3.5.3 對部分代碼禁用Black 51
3.6 小結 52
第4章 選擇易懂的名稱 53
4.1 命名風格 54
4.2 PEP 8 的命名風格 54
4.3 適當的名稱長度 54
4.3.1 太短的名稱 55
4.3.2 太長的名稱 56
4.4 起易於搜尋的名稱 57
4.5 避免笑話、雙關語和需要文化背景才能理解的辭彙 57
4.6 不要覆蓋內置名稱 58
4.7 史上最差的變數名 59
4.8 小結 59
第5章 揪出代碼的壞味道 61
5.1 重複的代碼 61
5.2 魔數 63
5.3 注釋掉的代碼和死代碼 65
5.4 列印調試 67
5.5 帶有數字後綴的變數 67
5.6 本該是函式或者模組的類 68
5.7 嵌套列表解析式 69
5.8 空的except塊和糟糕的錯誤信息 70
5.9 代碼壞味道的謬誤 71
5.9.1 謬誤:函式應該僅在末尾處有一個return語句 72
5.9.2 謬誤:函式最多只能有一個try語句 72
5.9.3 謬誤:使用flag參數不好 73
5.9.4 謬誤:全局變數不好 73
5.9.5 謬誤:注釋是不必要的 74
5.10 小結 75
第6章 編寫Python 風格的代碼 76
6.1 Python 之禪 76
6.2 學著喜歡強制縮進 79
6.3 使用timeit模組衡量性能 80
6.4 常被誤用的語法 82
6.4.1 使用enumerate()而不是range() 82
6.4.2 使用with 語句代替open()和close() 83
6.4.3 用is 跟None 做比較而不用== 84
6.5 格式化字元串 84
6.5.1 如果字元串有很多反斜槓,請使用原始字元串 84
6.5.2 使用f-string 格式化字元串 85
6.6 製作列表的淺副本 86
6.7 以Python 風格使用字典 87
6.7.1 在字典中使用get()和setdefault() 87
6.7.2 使用collections.defaultdict()設定默認值 89
6.7.3 使用字典代替switch 語句 89
6.8 條件表達式:Python“醜陋”的三元運算符 90
6.9 處理變數的值 92
6.9.1 鏈式賦值和比較運算符 92
6.9.2 驗證變數是否為多個值中的一個 93
6.10 小結 93
第7章 編程術語 95
7.1 定義 95
7.1.1 作為語言的Python 和作為解釋器的Python 96
7.1.2 垃圾回收 96
7.1.3 字面量 97
7.1.4 關鍵字 98
7.1.5 對象、值、實例和身份 98
7.1.6 項 101
7.1.7 可變和不可變 101
7.1.8 索引、鍵和哈希值 104
7.1.9 容器、序列、映射和集合類型 106
7.1.10 特殊方法 107
7.1.11 模組和包 108
7.1.12 可調用對象和頭等對象 108
7.2 經常被混淆的術語 109
7.2.1 語句和表達式 109
7.2.2 塊、子句和主體 110
7.2.3 變數和特性 111
7.2.4 函式和方法 111
7.2.5 可疊代對象和疊代器 112
7.2.6 語法錯誤、運行時錯誤和語義錯誤 113
7.2.7 形參和實參 115
7.2.8 顯式類型轉換和隱式類型轉換 115
7.2.9 屬性和特性 115
7.2.10 位元組碼和機器碼 116
7.2.11 腳本和程式,以及腳本語言和程式語言 116
7.2.12 庫、框架、SDK、引擎、API 117
7.3 小結 117
第8章 常見的Python陷阱 119
8.1 循環列表的同時不要增刪其中的元素 119
8.2 複製可變值時務必使用copy.copy()和copy.deepcopy() 125
8.3 不要用可變值作為默認參數 128
8.4 不要通過字元串連線創建字元串 130
8.5 不要指望sort()按照字母順序排序 131
8.6 不要假設浮點數是完全準確的 132
8.7 不要使用鏈式!=運算符 135
8.8 不要忘記在僅有一項的元組中添加逗號 135
8.9 小結 136
第9章 Python的奇特難懂之處 137
9.1 為什麼256 是256,而257 不是257 137
9.2 字元串駐留 138
9.3 假的Python 增量運算符和減量運算符 139
9.4 傳遞空列表給all() 141
9.5 布爾值是整數值 141
9.6 鏈式使用多種運算符 143
9.7 Python 的反重力特性 143
9.8 小結 144
第 10章 編寫高效的函式 145
10.1 函式名 145
10.2 函式大小的權衡 146
10.3 函式的形參和實參 148
10.3.1 默認參數 149
10.3.2 使用*和**向函式傳參 149
10.3.3 使用*創建可變參數函式 150
10.3.4 使用**創建可變參數函式 153
10.3.5 使用*和**創建包裝函式 154
10.4 函式式編程 155
10.4.1 副作用 155
10.4.2 高階函式 157
10.4.3 lambda 函式 157
10.4.4 在列表推導式中進行映射和過濾 158
10.5 返回值的數據類型應該不變 159
10.6 拋出異常和返回錯誤碼 161
10.7 小結 162
第 11章 注釋、文檔字元串和類型提示 163
11.1 注釋 164
11.1.1 注釋風格 164
11.1.2 內聯注釋 165
11.1.3 說明性的注釋 166
11.1.4 總結性的注釋 166
11.1.5 “經驗之談”的注釋 167
11.1.6 法律注釋 167
11.1.7 注釋的專業性 167
11.1.8 代碼標籤和TODO 注釋 168
11.1.9 神奇的注釋和源檔案編碼 168
11.2 文檔字元串 169
11.3 類型提示 171
11.3.1 使用靜態分析器 172
11.3.2 為多種類型設定類型提示 174
11.3.3 為列表、字典等設定類型提示 176
11.3.4 通過注釋向後移植類型提示 176
11.4 小結 177
第 12章 通過Git管理項目 . 179
12.1 Git 提交和倉庫 179
12.2 使用Cookiecutter新建Python項目 180
12.3 安裝Git 182
12.3.1 配置Git 用戶名和電子郵件 182
12.3.2 安裝GUI Git 工具 182
12.4 Git 的工作流程 183
12.4.1 Git 是如何追蹤檔案狀態的 184
12.4.2 為什麼要暫存檔案 185
12.5 在計算機上創建Git 倉庫 185
12.5.1 添加供Git 追蹤的檔案 187
12.5.2 忽略倉庫中的檔案 188
12.5.3 提交修改 189
12.5.4 從倉庫中刪除檔案 193
12.5.5 重命名和移動倉庫中的檔案 194
12.6 查看提交日誌 195
12.7 恢復歷史修改 196
12.7.1 撤銷未提交的本地修改 196
12.7.2 取消暫存的檔案 197
12.7.3 回滾近期的提交 197
12.7.4 回滾到單個檔案的某次提交 198
12.7.5 重寫提交歷史 199
12.8 GitHub 和git推送命令 199
12.8.1 將一個已存在的倉庫推送到GitHub 200
12.8.2 克隆已存在的GitHub倉庫 201
12.9 小結 202
第 13章 性能測量和大O算法分析 203
13.1 timeit模組 203
13.2 cProfile分析器 206
13.3 大O算法分析 208
13.4 大O階 208
13.4.1 使用書架打比方描述大O階 209
13.4.2 大O 測量的是最壞情況 212
13.5 確定代碼的大O 階 214
13.5.1 為什麼低階項和係數不重要 215
13.5.2 大O 分析實例 216
13.5.3 常見函式調用的大O 階 219
13.5.4 一眼看出大O 階 220
13.5.5 當n 很小時,大O並不重要,而n通常都很小 221
13.6 小結 . 221
第 14章 項目實戰 222
14.1 漢諾塔 . 222
14.1.1 輸出 223
14.1.2 原始碼 224
14.1.3 編寫代碼 227
14.2 四子棋 233
14.2.1 輸出 233
14.2.2 原始碼 234
14.2.3 編寫代碼 238
14.3 小結 245
第三部分 面向對象的Python
第 15章 面向對象編程和類 248
15.1 拿現實世界打比方:填寫表格 248
15.2 基於類創建對象 250
15.3 創建一個簡單的類——WizCoin 251
15.3.1 方法__init__()和self 253
15.3.2 特性 254
15.3.3 私有特性和私有方法 255
15.4 函式type()和特性__qualname__ 257
15.5 非OOP 和OOP 的例子:井字棋 258
15.6 為現實世界設計類是一件難事兒 263
15.7 小結 263
第 16章 面向對象編程和繼承 265
16.1 繼承的原理 265
16.1.1 重寫方法 267
16.1.2 super()函式 269
16.1.3 傾向於組合而非繼承 271
16.1.4 繼承的缺點 272
16.2 函式isinstance()和issubclass() 274
16.3 類方法 275
16.4 類特性 277
16.5 靜態方法 278
16.6 何時應該使用類和靜態的面向對象特性 278
16.7 面向對象的行話 279
16.7.1 封裝 279
16.7.2 多態性 279
16.8 何時不應該使用繼承 279
16.9 多重繼承 280
16.10 方法解析順序 282
16.11 小結 283
第 17章 Python 風格的面向對象編程:屬性和魔術方法 285
17.1 屬性 285
17.1.1 將特性轉換為屬性 286
17.1.2 使用setter 驗證數據 288
17.1.3 唯讀屬性 290
17.1.4 什麼時候應該使用屬性 291
17.2 Python 的魔術方法 291
17.2.1 字元串表示魔術方法 292
17.2.2 數值魔術方法 294
17.2.3 反射數值魔術方法 297
17.2.4 原地魔術方法 299
17.2.5 比較魔術方法 301
17.3 小結 305

作者簡介

阿爾.;斯維加特(Al Sweigart)是Python軟體基金會Fellow,在Python社區頗具影響力,曾受邀在世界各地的Python大會上做主題演講。他的Python入門書《Python編程快速上手》在全球範圍內銷售超過70萬冊。除了寫作Python書,阿爾還線上授課。他的Python線上課程已覆蓋100萬+學生。
張望
畢業於重慶大學,曾就職於騰訊看點、微信支付等部門,現就職於騰訊音樂集團商業廣告部,負責廣告投放等商業化系統的建設。騰訊開源項目WeTERM PMC成員,開源項目PyWebIO貢獻者。

相關詞條

熱門詞條

聯絡我們