本書是一本針對所有層次的Python讀者而作的Python入門書。全書分兩部分:首部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumPy和Pygal等強大的Python庫和工具介紹,以及列表、字典、if語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D游戲開發,如何利用數據生成交互式的信息圖,以及創建和定制簡單的Web應用,并幫讀者解決常見編程問題和困惑。
上到有編程基礎的程序員,下到10歲少年,想入門Python并達到可以開發實際項目的水平,本書是讀者!
本書是一本的從入門到實踐的Python編程教程,帶領讀者快速掌握編程基礎知識、編寫出能解決實際問題的代碼并開發復雜項目。
書中內容分為基礎篇和實戰篇兩部分。基礎篇介紹基本的編程概念,如列表、字典、類和循環,并指導讀者編寫整潔且易于理解的代碼。另外還介紹了如何讓程序能夠與用戶交互,以及如何在代碼運行前進行測試。實戰篇介紹如何利用新學到的知識開發功能豐富的項目:2D游戲《外星人入侵》,數據可視化實戰,Web應用程序。
Eric Matthes
高中科學和數學老師,現居住在阿拉斯加,在當地講授Python入門課程。他從5歲開始就一直在編寫程序。
及時部分基礎知識
第1章起步2
1.1搭建編程環境2
1.1.1Python 2和Python 32
1.1.2運行Python代碼片段3
1.1.3Hello World程序3
1.2在不同操作系統中搭建Python編程環境3
1.2.1在Linux系統中搭建Python編程環境3
1.2.2在OS X系統中搭建Python編程環境6
1.2.3在Windows系統中搭建Python編程環境8
1.3解決安裝問題12
1.4從終端運行Python程序13
1.4.1在Linux和OS X系統中從終端運行Python程序13
1.4.2在Windows系統中從終端運行Python程序13
1.5小結14
第2章變量和簡單數據類型15
2.1運行hello_world.py時發生的情況15
2.2變量16
2.2.1變量的命名和使用16
2.2.2使用變量時避免命名錯誤17
2.3字符串18
2.3.1使用方法修改字符串的大小寫19
2.3.2合并(拼接)字符串19
2.3.3使用制表符或換行符來添加空白20
2.3.4刪除空白21
2.3.5使用字符串時避免語法錯誤22
2.3.6Python 2中的print語句23
2.4數字24
2.4.1整數24
2.4.2浮點數25
2.4.3使用函數str()避免類型錯誤25
2.4.4Python 2中的整數26
2.5注釋27
2.5.1如何編寫注釋27
2.5.2該編寫什么樣的注釋28
2.6Python之禪28
2.7小結30
第3章列表簡介31
3.1列表是什么31
3.1.1訪問列表元素32
3.1.2索引從0而不是1開始32
3.1.3使用列表中的各個值33
3.2修改、添加和刪除元素33
3.2.1修改列表元素34
3.2.2在列表中添加元素34
3.2.3從列表中刪除元素35
3.3組織列表39
3.3.1使用方法sort()對列表進行長期性排序39
3.3.2使用函數sorted()對列表進行臨時排序40
3.3.3倒著打印列表41
3.3.4確定列表的長度41
3.4使用列表時避免索引錯誤42
3.5小結43
第4章操作列表44
4.1遍歷整個列表44
4.1.1深入地研究循環45
4.1.2在for循環中執行更多的操作46
4.1.3在for循環結束后執行一些操作47
4.2避免縮進錯誤47
4.2.1忘記縮進48
4.2.2忘記縮進額外的代碼行48
4.2.3不必要的縮進49
4.2.4循環后不必要的縮進49
4.2.5遺漏了冒號50
4.3創建數值列表51
4.3.1使用函數range()51
4.3.2使用range()創建數字列表51
4.3.3對數字列表執行簡單的統計計算53
4.3.4列表解析53
4.4使用列表的一部分54
4.4.1切片54
4.4.2遍歷切片56
4.4.3復制列表56
4.5元組59
4.5.1定義元組59
4.5.2遍歷元組中的所有值59
4.5.3修改元組變量60
4.6設置代碼格式61
4.6.1格式設置指南61
4.6.2縮進61
4.6.3行長61
4.6.4空行62
4.6.5其他格式設置指南62
4.7小結63
第5章if語句64
5.1一個簡單示例64
5.2條件測試65
5.2.1檢查是否相等65
5.2.2檢查是否相等時不考慮大小寫65
5.2.3檢查是否不相等66
5.2.4比較數字67
5.2.5檢查多個條件67
5.2.6檢查特定值是否包含在列表中68
5.2.7檢查特定值是否不包含在列表中69
5.2.8布爾表達式69
5.3if語句70
5.3.1簡單的if語句70
5.3.2if-else語句71
5.3.3if-elif-else結構72
5.3.4使用多個elif代碼塊73
5.3.5省略else代碼塊74
5.3.6測試多個條件74
5.4使用if語句處理列表76
5.4.1檢查特殊元素77
5.4.2確定列表不是空的78
5.4.3使用多個列表78
5.5設置if語句的格式80
5.6小結80
第6章字典81
6.1一個簡單的字典81
6.2使用字典82
6.2.1訪問字典中的值82
6.2.2添加鍵—值對83
6.2.3先創建一個空字典83
6.2.4修改字典中的值84
6.2.5刪除鍵—值對85
6.2.6由類似對象組成的字典86
6.3遍歷字典87
6.3.1遍歷所有的鍵—值對87
6.3.2遍歷字典中的所有鍵89
6.3.3按順序遍歷字典中的所有鍵91
6.3.4遍歷字典中的所有值91
6.4嵌套93
6.4.1字典列表93
6.4.2在字典中存儲列表95
6.4.3在字典中存儲字典97
6.5小結99
第7章用戶輸入和while循環100
7.1函數input()的工作原理100
7.1.1編寫清晰的程序101
7.1.2使用int()來獲取數值輸入102
7.1.3求模運算符103
7.1.4在Python 2.7中獲取輸入104
7.2while循環簡介104
7.2.1使用while循環104
7.2.2讓用戶選擇何時退出105
7.2.3使用標志106
7.2.4使用break退出循環107
7.2.5在循環中使用continue108
7.2.6避免無限循環109
7.3使用while循環來處理列表和字典110
7.3.1在列表之間移動元素110
7.3.2刪除包含特定值的所有列表元素111
7.3.3使用用戶輸入來填充字典112
7.4小結113
第8章函數114
8.1定義函數114
8.1.1向函數傳遞信息115
8.1.2實參和形參115
8.2傳遞實參116
8.2.1位置實參116
8.2.2關鍵字實參118
8.2.3默認值118
8.2.4等效的函數調用119
8.2.5避免實參錯誤120
8.3返回值121
8.3.1返回簡單值121
8.3.2讓實參變成可選的122
8.3.3返回字典123
8.3.4結合使用函數和while循環124
8.4傳遞列表126
8.4.1在函數中修改列表126
8.4.2禁止函數修改列表129
8.5傳遞任意數量的實參130
8.5.1結合使用位置實參和任意數量實參131
8.5.2使用任意數量的關鍵字實參131
8.6將函數存儲在模塊中133
8.6.1導入整個模塊133
8.6.2導入特定的函數134
8.6.3使用as給函數指定別名134
8.6.4使用as給模塊指定別名135
8.6.5導入模塊中的所有函數135
8.7函數編寫指南136
8.8小結137
第9章類138
9.1創建和使用類138
9.1.1創建Dog類139
9.1.2根據類創建實例140
9.2使用類和實例142
9.2.1Car類143
9.2.2給屬性指定默認值143
9.2.3修改屬性的值144
9.3繼承147
9.3.1子類的方法__init__()147
9.3.2Python 2.7中的繼承149
9.3.3給子類定義屬性和方法149
9.3.4重寫父類的方法150
9.3.5將實例用作屬性150
9.3.6模擬實物152
9.4導入類153
9.4.1導入單個類153
9.4.2在一個模塊中存儲多個類155
9.4.3從一個模塊中導入多個類156
9.4.4導入整個模塊157
9.4.5導入模塊中的所有類157
9.4.6在一個模塊中導入另一個模塊157
9.4.7自定義工作流程158
9.5Python標準庫159
9.6類編碼風格161
9.7小結161
第10章文件和異常162
10.1從文件中讀取數據162
10.1.1讀取整個文件162
10.1.2文件路徑164
10.1.3逐行讀取165
10.1.4創建一個包含文件各行內容的列表166
10.1.5使用文件的內容166
10.1.6包含一百萬位的大型文件168
10.1.7圓周率值中包含你的生日嗎168
10.2寫入文件169
10.2.1寫入空文件170
10.2.2寫入多行170
10.2.3附加到文件171
10.3異常172
10.3.1處理ZeroDivisionError異常172
10.3.2使用try-except 代碼塊173
10.3.3使用異常避免崩潰173
10.3.4else 代碼塊174
10.3.5處理FileNotFoundError異常175
10.3.6分析文本176
10.3.7使用多個文件177
10.3.8失敗時一聲不吭178
10.3.9決定報告哪些錯誤179
10.4存儲數據180
10.4.1使用json.dump()和json.load()180
10.4.2保存和讀取用戶生成的數據181
10.4.3重構183
10.5小結186
第11章測試代碼187
11.1測試函數187
11.1.1單元測試和測試用例188
11.1.2可通過的測試188
11.1.3不能通過的測試190
11.1.4測試未通過時怎么辦191
11.1.5添加新測試191
11.2測試類193
11.2.1各種斷言方法193
11.2.2一個要測試的類194
11.2.3測試AnonymousSurvey類195
11.2.4方法setUp()197
11.3小結199
第二部分項 目
項目1 外星人入侵202
第12章武裝飛船203
12.1規劃項目203
12.2安裝Pygame204
12.2.1使用pip安裝Python包204
12.2.2在Linux系統中安裝Pygame206
12.2.3在OS X系統中安裝Pygame207
12.2.4在Windows系統中安裝Pygame207
12.3開始游戲項目207
12.3.1創建Pygame窗口以及響應用戶輸入208
12.3.2設置背景色209
12.3.3創建設置類210
12.4添加飛船圖像211
12.4.1創建Ship類212
12.4.2在屏幕上繪制飛船213
12.5重構:模塊game_functions214
12.5.1函數check_events()214
12.5.2函數update_screen()215
12.6駕駛飛船216
12.6.1響應按鍵216
12.6.2允許不斷移動217
12.6.3左右移動219
12.6.4調整飛船的速度220
12.6.5限制飛船的活動范圍221
12.6.6重構check_events()222
12.7簡單回顧223
12.7.1alien_invasion.py223
12.7.2settings.py223
12.7.3game_functions.py223
12.7.4ship.py223
12.8射擊224
12.8.1添加子彈設置224
12.8.2創建Bullet類224
12.8.3將子彈存儲到編組中226
12.8.4開火227
12.8.5刪除已消失的子彈228
12.8.6限制子彈數量229
12.8.7創建函數update_bullets()229
12.8.8創建函數fire_bullet()230
12.9小結231
第13章外星人232
13.1回顧項目232
13.2創建及時個外星人233
13.2.1創建Alien類233
13.2.2創建Alien實例234
13.2.3讓外星人出現在屏幕上235
13.3創建一群外星人236
13.3.1確定一行可容納多少個外星人236
13.3.2創建多行外星人236
13.3.3創建外星人群237
13.3.4重構create_fleet()239
13.3.5添加行240
13.4讓外星人群移動242
13.4.1向右移動外星人243
13.4.2創建表示外星人移動方向的設置244
13.4.3檢查外星人是否撞到了屏幕邊緣244
13.4.4向下移動外星人群并改變移動方向245
13.5射殺外星人246
13.5.1檢測子彈與外星人的碰撞246
13.5.2為測試創建大子彈247
13.5.3生成新的外星人群248
13.5.4提高子彈的速度249
13.5.5重構update_bullets()249
13.6結束游戲250
13.6.1檢測外星人和飛船碰撞250
13.6.2響應外星人和飛船碰撞251
13.6.3有外星人到達屏幕底端254
13.6.4游戲結束255
13.7確定應運行游戲的哪些部分255
13.8小結256
第14章記分257
14.1添加Play 按鈕257
14.1.1創建Button類258
14.1.2在屏幕上繪制按鈕259
14.1.3開始游戲261
14.1.4重置游戲261
14.1.5將Play 按鈕切換到非活動狀態263
14.1.6隱藏光標263
14.2提高等級264
14.2.1修改速度設置264
14.2.2重置速度266
14.3記分267
14.3.1顯示得分267
14.3.2創建記分牌268
14.3.3在外星人被消滅時更新得分270
14.3.4將消滅的每個外星人的點數都計入得分271
14.3.5提高點數271
14.3.6將得分圓整272
14.3.7較高得分274
14.3.8顯示等級276
14.3.9顯示余下的飛船數279
14.4小結283
項目2 數據可視化284
第15章生成數據285
15.1安裝matplotlib285
15.1.1在Linux系統中安裝matplotlib286
15.1.2在OS X系統中安裝matplotlib286
15.1.3在Windows系統中安裝matplotlib286
15.1.4測試matplotlib287
15.1.5matplotlib畫廊287
15.2繪制簡單的折線圖287
15.2.1修改標簽文字和線條粗細288
15.2.2校正圖形289
15.2.3使用scatter()繪制散點圖并設置其樣式290
15.2.4使用scatter()繪制一系列點291
15.2.5自動計算數據292
15.2.6刪除數據點的輪廓293
15.2.7自定義顏色293
15.2.8使用顏色映射294
15.2.9自動保存圖表295
15.3隨機漫步295
15.3.1創建RandomWalk()類296
15.3.2選擇方向296
15.3.3繪制隨機漫步圖297
15.3.4模擬多次隨機漫步298
15.3.5設置隨機漫步圖的樣式299
15.3.6給點著色299
15.3.7重新繪制起點和終點300
15.3.8隱藏坐標軸301
15.3.9增加點數301
15.3.10調整尺寸以適合屏幕302
15.4使用Pygal模擬擲骰子303
15.4.1安裝Pygal304
15.4.2Pygal畫廊304
15.4.3創建Die類304
15.4.4擲骰子305
15.4.5分析結果305
15.4.6繪制直方圖306
15.4.7同時擲兩個骰子307
15.4.8同時擲兩個面數不同的骰子309
15.5小結311
第16章下載數據312
16.1CSV文件格式312
16.1.1分析CSV文件頭313
16.1.2打印文件頭及其位置314
16.1.3提取并讀取數據314
16.1.4繪制氣溫圖表315
16.1.5模塊datetime316
16.1.6在圖表中添加日期317
16.1.7涵蓋更長的時間318
16.1.8再繪制一個數據系列
非常適合零基礎的學習Python,不適合有一其他語言基礎的學習Python,因為每章都很詳細,但對于有經驗的讀者就顯得啰嗦很多!
基礎入門,而且是緊跟技術前沿發展,介紹詳細仔細
非常贊~開始學習python 了,這本書入門太好了,花了大概一周的時間看完這本書,基本語法掌握了,準備開始進階學習~
對于入門的人來說書里的內容很淺白易懂,這是優點也是缺點。也正因為深度不夠,許多細節,要點都沒有講得很詳細,甚至有的只字未提。如果一個門外漢想要了解python,那么這本書則是讓他對python產生興趣的不錯選擇。而如果你想深入系統的學習python,這可能并不是最佳選擇
內容不錯,下圖是我收到東西時候的箱子外觀,買了八本書,全部都右上角翻折,
很好的書,從安裝到使用介紹很詳細,適合初學者
到手里面的密封是破的。內容可以,適合沒有基礎的人逐步學習。python語言比較容易學,實際想做點什么的話,是要學各種各樣的模塊調用
感覺還行吧,還沒看,不知道內容深淺,后面再來評價。
還不錯,書沒有破損,印刷清晰。內容還沒看,別人推薦買的,這書豆瓣評分高。物流還好
這種書豆瓣評分很高,評價也不錯,對入門來說應該不錯!
書收到后外觀和電腦上看到一樣,內容得仔細研究
內容是基于python3的,很好的入門書籍
非常好的入門教程,前半部分滿分,后半部分比較散。
為了自學電腦語言,特意買了這本書準備慢慢學習,希望能幫助自己很大的掌握編程語言!!
非常好的一本書,python 3 版本的,里面也會提到和2版本的差異
書是好書,然而發貨沒有把清單一起發過來,應該是包裝的問題。
非常不錯的一本python入門教材,通俗易懂
對于新手來說講的很好,學完了有基本概念,好評
這本書還沒看過,前面是理論后面有項目,適合上手
之前看的是廖雪峰老師的網站,后來用紙質版的書好點,就買了這個,感覺這個好點,值得購買,盡管有點貴
書還不錯。就是清單我丟了不能報銷,叫當當重新發個清單或者開個有蓋章的清單,郵件快遞都可以。但是當當不答應。唉。。。
本書挺適合入門的人學習。對于初學者來說,莫過于能看得懂,且操作起來問題不是很大。這樣會對此感興趣,喜歡接著深入學習!
浪潮送的購書券,這次消費了。非常好的一本書,并不像國內拼湊的一些書。結合另外買的兩本書一起看。這個暑假和python一起過,收獲挺大。
用的好的話回來追評~ 但是這個里面就木有介紹python畫圖的一些用法什么的 不知道哪本書各個方面都介紹的比較全吶?
通俗易懂的一本輔導書,把Python2和Python3之間的區別都在個章列出,方便用戶在編程時即使調整。書籍印刷挺好的,物流也可以,正在學習
前一天下午下單,第二天中午就到了,不得不說,物流還是很快的。書包裝得很好,完全沒有折痕。這本書是知乎安利過來的,很適合初學者
這本書非常棒~就算沒有編程基礎也能學,之前如果學過的話就更簡單啦~
再也不是以前的當當了,,發貨慢,找客服只會說,安排了,合作的物流又爛又慢,不送貨上樓,難怪當當現在越來越爛
小孩愛上編程,特意挑了這本書,從入門到實踐,循序漸進,易懂,學Python編程的不二選擇。
還沒看完····入門書籍應該還不錯吧····
對比了下別的這本簡單易懂,不會一段話完事,也不會生硬的給整好多術語,例子也有趣看著不覺得枯燥
買了看了那么多編程書,就這一本最適合基礎為0的人
感謝python讓我重拾編程的樂趣,大二時候學的C,看了python之后覺得編程真的應該從python入門,對初學者太友好了