Python 編程從入門到實踐 (Python Crash Course : A Hand-On, Project-Based Introduction to Programming) Python编程 从入门到实践

[美]埃里克·馬瑟斯

  • 出版商: 人民郵電
  • 出版日期: 2016-07-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 459
  • 裝訂: 平裝
  • ISBN: 7115428026
  • ISBN-13: 9787115428028
  • 相關分類: Python

已絕版

買這商品的人也買了...

相關主題

商品描述

本書是一本針對所有層次的Python讀者而作的Python入門書。全書分兩部分:首部分介紹用Python 編程所必須瞭解的基本概念,包括matplotlib、NumPy和Pygal等強大的Python庫和工具介紹,以及列表、字典、if語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D遊戲開發,如何利用數據生成交互式的信息圖,以及創建和定製簡單的Web應用,並幫讀者解決常見編程問題和困惑

目錄大綱

第一部分基礎知識
第1章起步2
1.1搭建編程環境2
1.1.1 Python 2和Python 3 2
1.1.2運行Python代碼片段3
1.1.3 Hello 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.6 Python 2中的print語句23
2.4數字24
2.4.1整數24
2.4.2浮點數25
2.4.3使用函數str()避免類型錯誤25
2.4.4 Python 2中的整數26
2.5註釋27
2.5.1如何編寫註釋27
2.5.2該編寫什麼樣的註釋28
2.6 Python之禪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檢查特定值是否包含在列表中69
5.2.8布爾表達式69
5.3 if語句70
5.3.1簡單的if語句70
5.3.2 if-else語句71
5.3.3 if-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.2 while循環簡介104
7.2.1使用while循環104
7.2.2讓用戶選擇何時退出105
7.2.3使用標誌106
7.2.4使用break退出循環107
7.2.5在循環中使用continue 108
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.1 Car類143
9.2.2給屬性指定默認值143
9.2.3修改屬性的值144
9.3繼承147
9.3.1子類的方法__init__() 147
9.3.2 Python 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.5 Python標準庫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.4 else代碼塊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安裝Pygame 204
12.2.1使用pip安裝Python包204
12.2.2在Linux系統中安裝Pygame 206
12.2.3在OS X系統中安裝Pygame 207
12.2.4在Windows系統中安裝Pygame 207
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_functions 214
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.1 alien_invasion.py 223
12.7.2 settings.py 223
12.7.3 game_functions.py 223
12.7.4 ship .py 223
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() 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安裝matplotlib 285
15.1.1在Linux系統中安裝matplotlib 286
15.1.2在OS X系統中安裝matplotlib 286
15.1.3在Windows系統中安裝matplotlib 286
15.1.4測試matplotlib 287
15.1.5 matplotlib畫廊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安裝Pygal 304
15.4.2 Pygal畫廊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.1 CSV文件格式312
16.1 .1分析CSV文件頭313
16.1.2打印文件頭及其位置314
16.1.3提取並讀取數據314
16.1.4繪製氣溫圖表315
16.1.5模塊datetime 316
16.1.6在圖表中添加日期317
16.1. 7涵蓋更長的時間318
16.1.8再繪製一個數據系列319
16.1.9給圖表區域著色320
16.1.10錯誤檢查321
16.2製作世界人口地圖:JSON格式324
16.2.1下載世界人口數據324
16.2.2提取相關的數據324
16.2.3將字符串轉換為數字值326
16.2.4獲取兩個字母的國別碼327
16.2.5製作世界地圖329
16.2.6在世界地圖上呈現數字數據330
16.2.7繪製完整的世界人口地圖331
16.2.8根據人口數量將國家分組333
16.2.9使用Pygal設置世界地圖的樣式334
16.2.10加亮顏色主題335
16.3小結337
第17章使用API 338
17.1使用Web API 338
17.1 .1 Git和GitHub 338
17.1.2使用API調用請求數據339
17.1.3安裝requests 339
17.1.4處理API響應340
17.1.5處理響應字典340
17.1.6概述最受歡迎的倉庫342
17.1.7監視API的速率限制343
17.2使用Pygal可視化倉庫344
17.2.1改進Pygal圖表346
17.2.2添加自定義工具提示347
17.2.3根據數據繪圖349
17.2.4在圖表中添加可單擊的鏈接350
17.3 Hacker News API 350
17.4小結353
項目3 Web應用程序354
第18章Django入門355
18.1建立項目355
18.1.1制定規範355
18.1.2建立虛擬環境356
18.1.3安裝virtualenv 356
18.1.4激活虛擬環境357
18.1.5安裝Django 357
18.1.6在Django中創建項目357
18.1.7創建數據庫358
18.1.8查看項目359
18.2創建應用程序360
18.2.1定義模型360
18.2.2激活模型362
18.2.3 Django管理網站363
18.2.4定義模型Entry 365
18.2.5遷移模型Entry 366
18.2.6向管理網站註冊Entry 366
18.2.7 Django shell 367
18.3創建網頁:學習筆記主頁369
18.3.1映射URL 369
18.3.2編寫視圖371
18.3.3編寫模板372
18.4創建其他網頁373
18.4.1模板繼承373
18.4.2顯示所有主題的頁面375
18.4.3顯示特定主題的頁面378
18.5小結381
第19章用戶賬戶382
19.1讓用戶能夠輸入數據382
19.1.1添加新主題382
19.1.2添加新條目386
19.1.3編輯條目390
19.2創建用戶賬戶392
19.2.1應用程序users 393
19.2.2登錄頁面394
19.2.3註銷396
19.2.4註冊頁面397
19.3讓用戶擁有自己的數據400
19.3.1使用@login_required限制訪問400
19.3.2將數據關聯到用戶402
19.3.3只允許用戶訪問自己的主題405
19.3.4保護用戶的主題405
19.3.5保護頁面edit_entry 406
19.3. 6將新主題關聯到當前用戶406
19.4小結408
第20章設置應用程序的樣式並對其進行部署409
20.1設置項目“學習筆記”的樣式409
20.1.1應用程序django-bootstrap3 410
20.1.2使用Bootstrap來設置項目“學習筆記”的樣式411
20.1.3修改base.html 411
20.1.4使用jumbotron設置主頁的樣式414
20.1.5設置登錄頁面的樣式415
20.1.6設置new_topic頁面的樣式416
20.1.7設置topics頁面的樣式417
20.1.8設置topic頁面中條目的樣式417
20.2部署“學習筆記” 419
20.2.1建立Heroku賬戶420
20.2.2安裝Heroku Toolbelt 420
20.2.3安裝必要的包420
20.2.4創建包含包列表的文件requirements.txt 421
20.2.5指定Python版本422
20.2.6為部署到Herohu而修改settings.py 422
20.2.7創建啟動進程的Procfile 423
20.2.8為部署到Herohu而修改wsgi.py 423
20.2.9創建用於存儲靜態文件的目錄424
20.2.10在本地使用gunicorn服務器424
20.2.11使用Git跟蹤項目文件425
20.2.12推送到Heroku 426
20.2.13在Heroku上建立數據庫427
20.2.14改進Heroku部署428
20.2.15確保項目的安全429
20.2.16提交並推送修改430
20.2.17創建自定義錯誤頁面431
20.2.18繼續開發434
20.2.19設置SECRET_KEY 434
20.2.20將項目從Heroku刪除434
20.3小結435
附錄A安裝Python 436
附錄B文本編輯器441
附錄C尋求幫助447
附錄D使用Git進行版本控制451
後記460