[美] 埃里克·馬瑟斯(Eric Matthes) 著,袁國(guó)忠 譯
1.第一版中文版重印30余次,銷量750 000冊(cè);
2.針對(duì)Python 3.x新特性升級(jí),重寫項(xiàng)目代碼;
3.真正零基礎(chǔ),自學(xué)也輕松;
4.贈(zèng)送配套學(xué)習(xí)視頻,邊看邊學(xué)更便捷;
5.贈(zèng)送Python學(xué)習(xí)速查地圖,掌握編程語言關(guān)鍵步驟,學(xué)習(xí)不迷路;
6.提供讀者學(xué)習(xí)交流群,不懂就問,近距離接觸行業(yè)大佬;
7.贈(zèng)送學(xué)習(xí)源代碼文件、練習(xí)答案,助讀者零壓力掌握Python語言!
本書內(nèi)容分為“基礎(chǔ)知識(shí)”和“項(xiàng)目”兩部分。讀完本書,讀者不僅能快速掌握編程基礎(chǔ)知識(shí),還能編寫出解決實(shí)際問題的代碼并開發(fā)復(fù)雜的項(xiàng)目。
第2版沿襲第1版講解清晰透徹、循序漸進(jìn)的特點(diǎn),并全面升級(jí)。
第一部分“基礎(chǔ)知識(shí)”新增Sublime Text、f字符串、大數(shù)表示法和常量表示法等主題,并且更準(zhǔn)確地描述了Python語言的細(xì)節(jié)。
第二部分“項(xiàng)目”采用更簡(jiǎn)明的結(jié)構(gòu)、更清晰的語法以及更流行的庫(kù)和工具,如Plotly和新版本的Django。
“我想說,Python是否值得學(xué), 已經(jīng)不再是值得懷疑的問題了。但是,如何能高效學(xué)會(huì)Python,永遠(yuǎn)是個(gè)值得思考的重要問題。這個(gè)問題的答案,是繞不開本書的?!?/p>
--大媽/ZoomQuiet,CPyUG聯(lián)合創(chuàng)始人、蟒營(yíng)創(chuàng)始人
“書如其名,本書簡(jiǎn)明清晰地講解了入門Python所需學(xué)習(xí)的基本知識(shí),同時(shí)在講解過程中穿插實(shí)戰(zhàn)演練,使讀者對(duì)Python有更加深刻的理解,是一本入門Python的難得好書,推薦給大家學(xué)習(xí)?!?/p>
--崔慶才,微軟(中國(guó))工程師、《Python 3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)》作者
本書是針對(duì)所有層次Python讀者而作的Python入門書。全書分兩部分:第一部分介紹用Python編程所必須了解的基本概念,包括強(qiáng)大的Python庫(kù)和工具,以及列表、字典、if語句、類、文件與異常、代碼測(cè)試等內(nèi)容;第二部分將理論付諸實(shí)踐,講解如何開發(fā)三個(gè)項(xiàng)目,包括簡(jiǎn)單的2D游戲、利用數(shù)據(jù)生成交互式的信息圖以及創(chuàng)建和定制簡(jiǎn)單的Web應(yīng)用,并幫助讀者解決常見編程問題和困惑。第2版進(jìn)行了全面修訂,簡(jiǎn)化了Python安裝流程,新增了f字符串、get()方法等內(nèi)容,并且在項(xiàng)目中使用了Plotly庫(kù)以及新版本的Django和Bootstrap,等等。
埃里克.馬瑟斯(Eric Matthes)
高中科學(xué)和數(shù)學(xué)老師,現(xiàn)居住在阿拉斯加,在當(dāng)?shù)刂v授Python入門課程。他從5歲開始就一直在編寫程序。
袁國(guó)忠自由譯者;2000年起專事翻譯,主譯圖書,偶譯新聞稿、軟文;出版譯著40余部,其中包括《C++ Prime Plus中文版》《CCNA學(xué)習(xí)指南》《CCNP ROUTE學(xué)習(xí)指南》《面向模式的軟件架構(gòu):模式系統(tǒng)》《Android應(yīng)用UI設(shè)計(jì)模式》《風(fēng)投的選擇:誰是下一個(gè)十億美元級(jí)公司》等,總計(jì)700余萬字;專事翻譯前,從事過三年化工產(chǎn)品分析和開發(fā),做過兩年雜志和圖書編輯。
第一部分基礎(chǔ)知識(shí)
第1章 起步 2
1.1 搭建編程環(huán)境 2
1.1.1 Python版本 2
1.1.2 運(yùn)行Python代碼片段 2
1.1.3 SublimeText簡(jiǎn)介 3
1.2 在不同操作系統(tǒng)中搭建Python編程環(huán)境 3
1.2.1 在Windows系統(tǒng)中搭建Python編程環(huán)境 4
1.2.2 在macOS系統(tǒng)中搭建Python編程環(huán)境 5
1.2.3 在Linux系統(tǒng)中搭建Python編程環(huán)境 7
1.3 運(yùn)行HelloWorld程序 8
1.3.1 配置SublimeText以使用正確的Python版本 8
1.3.2 運(yùn)行程序hello_world.py 8
1.4 解決安裝問題 9
1.5 從終端運(yùn)行Python程序 9
1.5.1 在Windows系統(tǒng)中從終端運(yùn)行Python程序 10
1.5.2 在Linux和macOS系統(tǒng)中從終端運(yùn)行Python程序 10
1.6 小結(jié) 11
第2章 變量和簡(jiǎn)單數(shù)據(jù)類型 12
2.1 運(yùn)行hello_world.py時(shí)發(fā)生的情況 12
2.2 變量 13
2.2.1 變量的命名和使用 13
2.2.2 使用變量時(shí)避免命名錯(cuò)誤 14
2.2.3 變量是標(biāo)簽 15
2.3 字符串 16
2.3.1 使用方法修改字符串的大小寫 17
2.3.3 使用制表符或換行符來添加空白 18
2.3.4 刪除空白 19
2.3.5 使用字符串時(shí)避免語法錯(cuò)誤 20
2.4 數(shù) 21
2.4.1 整數(shù) 22
2.4.2 浮點(diǎn)數(shù) 22
2.4.3 整數(shù)和浮點(diǎn)數(shù) 23
2.4.4 數(shù)中的下劃線 23
2.4.5 同時(shí)給多個(gè)變量賦值 24
2.4.6 常量 24
2.5 注釋 25
2.5.1 如何編寫注釋 25
2.5.2 該編寫什么樣的注釋 25
2.6 Python之禪 26
2.7 小結(jié) 27
第3章 列表簡(jiǎn)介 28
3.1 列表是什么 28
3.1.1 訪問列表元素 29
3.1.2 索引從0而不是1開始 29
3.1.3 使用列表中的各個(gè)值 30
3.2 修改、添加和刪除元素 31
3.2.1 修改列表元素 31
3.2.2 在列表中添加元素 31
3.2.3 從列表中刪除元素 32
3.3 組織列表 36
3.3.1 使用方法sort()對(duì)列表永久排序 37
3.3.2 使用函數(shù)sorted()對(duì)列表臨時(shí)排序 37
3.3.3 倒著打印列表 38
3.3.4 確定列表的長(zhǎng)度 38
3.4 使用列表時(shí)避免索引錯(cuò)誤 39
3.5 小結(jié) 41
第4章 操作列表 42
4.1 遍歷整個(gè)列表 42
4.1.1 深入研究循環(huán) 43
4.1.2 在for循環(huán)中執(zhí)行更多操作 44
4.1.3 在for循環(huán)結(jié)束后執(zhí)行一些操作 45
4.2 避免縮進(jìn)錯(cuò)誤 45
4.2.1 忘記縮進(jìn) 46
4.2.2 忘記縮進(jìn)額外的代碼行 46
4.2.3 不必要的縮進(jìn) 47
4.2.4 循環(huán)后不必要的縮進(jìn) 47
4.2.5 遺漏了冒號(hào) 48
4.3 創(chuàng)建數(shù)值列表 49
4.3.1 使用函數(shù)range() 49
4.3.2 使用range()創(chuàng)建數(shù)字列表 50
4.3.3 對(duì)數(shù)字列表執(zhí)行簡(jiǎn)單的統(tǒng)計(jì)計(jì)算 51
4.3.4 列表解析 52
4.4 使用列表的一部分 53
4.4.1 切片 53
4.4.2 遍歷切片 54
4.4.3 復(fù)制列表 55
4.5 元組 57
4.5.1 定義元組 57
4.5.2 遍歷元組中的所有值 58
4.5.3 修改元組變量 59
4.6 設(shè)置代碼格式 60
4.6.1 格式設(shè)置指南 60
4.6.2 縮進(jìn) 60
4.6.3 行長(zhǎng) 60
4.6.4 空行 61
4.6.5 其他格式設(shè)置指南 61
4.7 小結(jié) 62
第5章 if語句 63
5.1 一個(gè)簡(jiǎn)單示例 63
5.2 條件測(cè)試 64
5.2.1 檢查是否相等 64
5.2.2 檢查是否相等時(shí)忽略大小寫 64
5.2.3 檢查是否不相等 65
5.2.4 數(shù)值比較 66
5.2.5 檢查多個(gè)條件 66
5.2.6 檢查特定值是否包含在列表中 68
5.2.8 布爾表達(dá)式 68
5.3 if語句 69
5.3.1 簡(jiǎn)單的if語句 69
5.3.2 if-else語句 70
5.3.3 if-elif-else結(jié)構(gòu) 71
5.3.4 使用多個(gè)elif代碼塊 72
5.3.5 省略else代碼塊 73
5.3.6 測(cè)試多個(gè)條件 73
5.4 使用if語句處理列表 76
5.4.1 檢查特殊元素 76
5.4.2 確定列表不是空的 77
5.4.3 使用多個(gè)列表 77
5.5 設(shè)置if語句的格式 79
5.6 小結(jié) 80
第6章 字典 81
6.1 一個(gè)簡(jiǎn)單的字典 81
6.2 使用字典 82
6.2.1 訪問字典中的值 82
6.2.2 添加鍵值對(duì) 83
6.2.3 先創(chuàng)建一個(gè)空字典 83
6.2.4 修改字典中的值 84
6.2.5 刪除鍵值對(duì) 85
6.2.6 由類似對(duì)象組成的字典 86
6.2.7 使用get()來訪問值 87
6.3 遍歷字典 88
6.3.1 遍歷所有鍵值對(duì) 88
6.3.2 遍歷字典中的所有鍵 90
6.3.3 按特定順序遍歷字典中的所有鍵 92
6.3.4 遍歷字典中的所有值 92
6.4 嵌套 94
6.4.1 字典列表 94
6.4.2 在字典中存儲(chǔ)列表 97
6.4.3 在字典中存儲(chǔ)字典 98
6.5 小結(jié) 100
第7章 用戶輸入和while循環(huán) 101
7.1 函數(shù)input()的工作原理 101
7.1.1 編寫清晰的程序 102
7.1.2 使用int()來獲取數(shù)值輸入 102
7.1.3 求模運(yùn)算符 104
7.2 while循環(huán)簡(jiǎn)介 105
7.2.1 使用while循環(huán) 105
7.2.2 讓用戶選擇何時(shí)退出 105
7.2.3 使用標(biāo)志 107
7.2.4 使用break退出循環(huán) 108
7.2.5 在循環(huán)中使用continue 109
7.2.6 避免無限循環(huán) 109
7.3 使用while循環(huán)處理列表和字典 111
7.3.1 在列表之間移動(dòng)元素 111
7.3.2 刪除為特定值的所有列表元素 112
7.3.3 使用用戶輸入來填充字典 112
7.4 小結(jié) 114
第8章 函數(shù) 115
8.1 定義函數(shù) 115
8.1.1 向函數(shù)傳遞信息 116
8.1.2 實(shí)參和形參 116
8.2 傳遞實(shí)參 117
8.2.1 位置實(shí)參 117
8.2.2 關(guān)鍵字實(shí)參 119
8.2.3 默認(rèn)值 119
8.2.4 等效的函數(shù)調(diào)用 120
8.2.5 避免實(shí)參錯(cuò)誤 121
8.3 返回值 122
8.3.1 返回簡(jiǎn)單值 122
8.3.2 讓實(shí)參變成可選的 123
8.3.3 返回字典 124
8.3.4 結(jié)合使用函數(shù)和while循環(huán) 125
8.4 傳遞列表 127
8.4.1 在函數(shù)中修改列表 128
8.4.2 禁止函數(shù)修改列表 130
8.5 傳遞任意數(shù)量的實(shí)參 131
8.5.1 結(jié)合使用位置實(shí)參和任意數(shù)量實(shí)參 132
8.5.2 使用任意數(shù)量的關(guān)鍵字實(shí)參 134
8.6.1 導(dǎo)入整個(gè)模塊 134
8.6.2 導(dǎo)入特定的函數(shù) 135
8.6.3 使用as給函數(shù)指定別名 136
8.6.4 使用as給模塊指定別名 136
8.6.5 導(dǎo)入模塊中的所有函數(shù) 137
8.7 函數(shù)編寫指南 137
8.8 小結(jié) 138
第9章 類 140
9.1 創(chuàng)建和使用類 140
9.1.1 創(chuàng)建Dog類 141
9.1.2 根據(jù)類創(chuàng)建實(shí)例 142
9.2 使用類和實(shí)例 144
9.2.1 Car類 145
9.2.2 給屬性指定默認(rèn)值 145
9.2.3 修改屬性的值 146
9.3 繼承 149
9.3.1 子類的方法__init__() 149
9.3.2 給子類定義屬性和方法 151
9.3.3 重寫父類的方法 152
9.3.4 將實(shí)例用作屬性 152
9.3.5 模擬實(shí)物 154
9.4 導(dǎo)入類 155
9.4.1 導(dǎo)入單個(gè)類 155
9.4.2 在一個(gè)模塊中存儲(chǔ)多個(gè)類 157
9.4.3 從一個(gè)模塊中導(dǎo)入多個(gè)類 158
9.4.4 導(dǎo)入整個(gè)模塊 158
9.4.5 導(dǎo)入模塊中的所有類 159
9.4.6 在一個(gè)模塊中導(dǎo)入另一個(gè)模塊 159
9.4.7 使用別名 160
9.4.8 自定義工作流程 160
9.5 Python標(biāo)準(zhǔn)庫(kù) 161
9.6 類編碼風(fēng)格 162
9.7 小結(jié) 163
第10章 文件和異?!?64
10.1 從文件中讀取數(shù)據(jù) 164
10.2 寫入文件 171
10.3 異?!?74
10.4 存儲(chǔ)數(shù)據(jù) 182
10.5 小結(jié) 187
第11章 測(cè)試代碼 188
11.1 測(cè)試函數(shù) 188
11.2 測(cè)試類 194
11.3 小結(jié) 200
第二部分 項(xiàng)目
項(xiàng)目1 外星人入侵 202
第12章 武裝飛船 203
12.1 規(guī)劃項(xiàng)目 203
12.2 安裝Pygame 204
12.3 開始游戲項(xiàng)目 204
12.4 添加飛船圖像 208
12.5 重構(gòu):方法_check_events()和__update_screen() 211
12.6 駕駛飛船 213
12.6.7 按Q鍵退出 219
12.6.8 在全屏模式下運(yùn)行游戲 219
12.7 簡(jiǎn)單回顧 220
12.8 射擊 221
第13章 外星人來了 228
13.1 項(xiàng)目回顧 228
13.2 創(chuàng)建第一個(gè)外星人 229
13.3 創(chuàng)建一群外星人 232
13.3.4 添加行 234
13.4 讓外星人群移動(dòng) 237
13.5 射殺外星人 240
13.6 結(jié)束游戲 244
13.7 確定應(yīng)運(yùn)行游戲的哪些部分 248
13.8 小結(jié) 249
第14章 記分 250
14.1 添加Play按鈕 250
14.2 提高等級(jí) 256
14.3 記分 258
14.4 小結(jié) 272
項(xiàng)目2 數(shù)據(jù)可視化 273
第15章 生成數(shù)據(jù) 274
15.1 安裝Matplotlib 274
15.2 繪制簡(jiǎn)單的折線圖 275
15.3 隨機(jī)漫步 284
15.4 使用Plotly模擬擲骰子 292
15.5 小結(jié) 300
第16章 下載數(shù)據(jù) 301
16.1 CSV文件格式 301
16.2 制作全球地震散點(diǎn)圖:JSON格式 315
16.3 小結(jié) 325
第17章 使用API 326
17.1 使用WebAPI 326
17.2 使用Plotly可視化倉(cāng)庫(kù) 332
17.3 HackerNewsAPI 338
17.4 小結(jié) 341
項(xiàng)目3 Web應(yīng)用程序 342
第18章 從Django入手 343
18.1 建立項(xiàng)目 343
18.2 創(chuàng)建應(yīng)用程序 348
18.3 創(chuàng)建頁面:學(xué)習(xí)筆記主頁 357
18.4 創(chuàng)建其他頁面 361
18.5 小結(jié) 369
第19章 用戶賬戶 370
19.1 讓用戶輸入數(shù)據(jù) 370
19.2 創(chuàng)建用戶賬戶 381
19.3 讓用戶擁有自己的數(shù)據(jù) 388
第20章 設(shè)置應(yīng)用程序的樣式并部署 397
20.1.1 應(yīng)用程序django-bootstrap4 398
20.1.3 修改base.html 399
20.1.4 使用jumbotron設(shè)置主頁的樣式 403
20.1.5 設(shè)置登錄頁面的樣式 404
20.1.6 設(shè)置顯示所有主題的頁面的樣式 405
20.1.7 設(shè)置顯示單個(gè)主題的頁面中的條目樣式 406
20.2 部署“學(xué)習(xí)筆記” 407
20.3 小結(jié) 422
附錄A 安裝與故障排除 423
附錄B 文本編輯器與IDE 428
附錄C 尋求幫助 432
附錄D 使用Git進(jìn)行版本控制 436
后記 445
更多建議: