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