TOP
0
0
魅麗。花火原創小說66折起
Python編程輕鬆進階(簡體書)
滿額折

Python編程輕鬆進階(簡體書)

人民幣定價:99.8 元
定  價:NT$ 599 元
優惠價:87521
領券後再享89折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:15 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

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

作者簡介

阿爾.;斯維加特(Al Sweigart)是Python軟件基金會Fellow,在Python社區頗具影響力,曾受邀在世界各地的Python大會上做主題演講。他的Python入門書《Python編程快速上手》在全球範圍內銷售超過70萬冊。除了寫作Python書,阿爾還在線授課。他的Python在線課程已覆蓋100萬+學生。

【譯者簡介】

張望

畢業於重慶大學,曾就職於騰訊看點、微信支付等部門,現就職於騰訊音樂集團商業廣告部,負責廣告投放等商業化系統的建設。騰訊開源項目WeTERM PMC成員,開源項目PyWebIO貢獻者。

名人/編輯推薦

* 《Python編程快速上手》的作者阿爾·斯維加特又一力作
* 《python編程從入門到實踐》讀者的進階Python推薦讀物
* 逐步可視化代碼執行過程,助你編寫規範、整潔的Python代碼
* 通過益智遊戲了解代碼底層邏輯,像職業程序員一樣使用Python

在學習Python的旅程中,你是否正在“絕望的沙漠”裡徘徊?你已經學完了基礎教程,卻徘徊於不同的學習材料之間,感覺自己毫無長進。本書是“沙漠裡的那片綠洲”。

作為《Python編程快速上手》的姊妹篇,本書專為想達到職業程序員水平卻問路無門的人而寫。作者擁有豐富的Python教學經驗,所寫內容既翔實細致,又深入淺出。你將通過三個方面實現從“快速上手”到“輕鬆進階”的躍遷:解決初級進階會遇到的重重困難;掌握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

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 521
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區