內容簡介
本書共分為十五章,涵蓋了Python語言核心基礎知識,對重難點內容進行了針對性講解。本書面向Python編程初學者,按照由淺入深、循序漸進的規律,從搭建Python開發環境,到講解Python基礎語法和高級語法,後介紹Python擴展技術和遊戲開發。
●初識Python(第一章)
介紹了Python簡史、優勢、套用領域,還介紹了Python開發環境的搭建,重點介紹了PyCharm的使用。
●Python基礎語法(第二章至第六章)
講解了Python的基礎語法、流程控制結構、列表、元組、字元串、字典和集合。
●Python高級語法(第七章、第八章)
講解了Python的函式,包括生成器函式、裝飾器函式、閉包函式等;還講解了Python的類,包括類的封裝、繼承、多態和設計模式等。
●Python擴展技術(第九章至第十三章)
介紹了Python的異常處理,檔案的讀、寫和追加操作,常見模組和包的使用,多進程和多執行緒的使用,以及網路開發。
●Python遊戲開發(第十四章、第十五章)
介紹了Pygame模組和Sprite(精靈)類的使用,以及開發飛機大戰遊戲案例。
圖書目錄
第一章Python語言概述與開發環境搭建|1
1.1Python簡介1
1.1.1Python簡史1
1.1.2Python的優勢3
1.1.3Python的套用領域5
1.1.4Python2和Python36
1.2安裝Python7
1.2.1在Windows作業系統中安裝Python7
1.2.2在Linux作業系統中安裝Python9
1.2.3在Mac作業系統中安裝Python10
1.3第一個Python程式:列印“Hello,world!”12
1.3.1在互動模式下列印“Hello,world!”12
1.3.2在腳本模式下列印“Hello,world!”12
1.4Python開發工具13
1.4.1IDLE13
1.4.2編輯器13
1.4.3IDE14
1.5安裝Anaconda21
1.6Python模組/包的安裝22
1.6.1通過命令行視窗安裝模組/包22
1.6.2通過PyCharm安裝模組/包24
第二章Python語言基礎|25
2.1Python基礎知識25
2.1.1基本數據類型25
2.1.2注釋25
2.2使用Python進行算術運算26
2.2.1將Python互動模式作為計算器26
2.2.2Python互動模式不是完美的計算器27
2.2.3更多算術運算符27
2.3變數28
2.3.1變數的概念28
2.3.2變數的命名規則29
2.4字元串30
2.4.1字元串的表示30
2.4.2字元串的簡單操作32
2.5內建函式32
2.5.1print()函式33
2.5.2input()函式33
2.5.3int()函式和str()函式34
2.5.4type()函式35
第三章初級流程控制|36
3.1if語句36
3.2縮進37
3.2.1縮進的作用37
3.2.2如何進行縮進38
3.3布爾值與布爾表達式39
3.3.1判斷兩個值是否相等39
3.3.2判斷兩個值是否不相等40
3.3.3更多比較運算符知識41
3.3.4邏輯運算符43
3.3.5內建函式bool()45
3.4再談if語句46
3.4.1if-else語句46
3.4.2if-elif-else語句47
3.4.3嵌套的條件語句49
3.4.4if-else三目運算符51
3.5while循環52
3.5.1while循環語句52
3.5.2小心死循環54
3.5.3break語句54
3.5.4continue語句55
3.6for循環56
3.6.1for循環語句56
3.6.2使用range()函式58
3.6.3for循環中的break語句和continue語句59
3.6.4for-else語句60
3.7pass語句什麼也不做61
3.8流程控制套用案例61
3.8.1列印乘法表61
3.8.2登錄賬號62
3.8.3能否組成三角形64
第四章列表和元組|65
4.1列表65
4.2索引65
4.2.1修改列表中的項67
4.2.2刪除列表中的項67
4.3切片68
4.3.1超出列表範圍的切片69
4.3.2切片的簡寫69
4.3.3指定切片的步長70
4.4其他列表操作70
4.4.1使用len()函式獲取列表長度70
4.4.2檢查某個值是否在列表中71
4.4.3使用“+”和“*”72
4.4.4嵌套的列表72
4.4.5使用list()函式創建列表73
4.5列表方法73
4.5.1append()方法73
4.5.2insert()方法74
4.5.3extend()方法74
4.5.4remove()方法74
4.5.5pop()方法75
4.5.6clear()方法76
4.5.7count()方法76
4.5.8index()方法76
4.5.9sort()方法77
4.5.10reverse()方法78
4.5.11copy()方法78
4.6列表推導式79
4.7基於列表的算法80
4.7.1冒泡排序算法80
4.7.2直接插入排序算法81
4.8通用序列操作81
4.8.1min()函式和max()函式82
4.8.2in和notin83
4.8.3“+”和“*”83
4.8.4索引和切片84
4.8.5len()函式84
4.8.6index()方法84
4.8.7count()方法85
4.9元組86
4.9.1創建元組86
4.9.2嵌套元組88
4.9.3元組解包88
第五章更多的字元串知識|91
5.1更多的字元串基礎知識91
5.1.1字元串是不可變的序列91
5.1.2轉義字元和原始字元串92
5.2格式化字元串93
5.2.1C語言printf式格式化字元串93
5.2.2使用format()方法格式化字元串95
5.2.3FormattedStringLiterals98
5.3字元串方法99
5.3.1以is開頭的方法99
5.3.2split()方法100
5.3.3join()方法101
5.3.4replace()方法102
5.3.5find()方法102
5.3.6lower()方法和upper()方法103
5.3.7strip()方法104
5.3.8startswith()方法和endswith()方法104
5.4字元串套用案例105
第六章字典和集合|106
6.1字典106
6.1.1創建字典106
6.1.2訪問字典中的值107
6.1.3更新字典108
6.1.4刪除字典中的鍵-值對108
6.1.5其他字典操作108
6.1.6嵌套的字典109
6.2字典方法111
6.2.1setdefault()方法111
6.2.2keys()方法112
6.2.3values()方法113
6.2.4items()方法114
6.2.5update()方法114
6.2.6pop()方法115
6.2.7popitem()方法116
6.2.8copy()方法117
6.2.9fromkeys()方法118
6.2.10clear()方法118
6.3字典套用案例118
6.3.1雙色球購買流程118
6.3.2雙色球購買代碼實現119
6.4集合122
6.4.1創建集合122
6.4.2添加項123
6.4.3刪除項124
6.4.4檢查某個項是否在集合中125
6.4.5查看集合的長度125
6.5集合方法126
6.5.1issubset()方法或“<=”“<”求子集126
6.5.2issuperset()方法或“>=”“>”求超集127
6.5.3union()方法或“|”求並集128
6.5.4intersection()方法或“&”求交集129
6.5.5difference()方法或“-”求差集130
6.5.6symmetric_difference()方法或“^”求對稱差集130
第七章函式|132
7.1函式基礎知識132
7.1.1定義函式132
7.1.2全局變數和局部變數132
7.2函式的參數135
7.2.1位置參數136
7.2.2關鍵字參數137
7.2.3參數的默認值138
7.2.4可變位置參數140
7.2.5可變關鍵字參數142
7.3函式的返回值144
7.4匿名函式與高階函式146
7.4.1匿名函式146
7.4.2高階函式147
7.5生成器函式152
7.6裝飾器函式153
7.6.1裝飾器函式的概念153
7.6.2裝飾器函式套用案例157
7.7閉包函式159
7.7.1閉包函式的概念159
7.7.2閉包函式套用案例160
7.8遞歸函式161
7.9文檔字元串162
7.9.1查看文檔字元串162
7.9.2編寫文檔字元串166
第八章類|167
8.1面向對象的概念167
8.2初識類168
8.2.1由抽象獲得類169
8.2.2定義類169
8.2.3__init__()構造方法和創建實例170
8.2.4實例屬性170
8.2.5類屬性173
8.2.6實例方法174
8.2.7類方法174
8.2.8類中的魔法方法176
8.2.9類中的靜態方法178
8.2.10類中的私有屬性和方法179
8.2.11類中的屬性裝飾器181
8.2.12類綜合案例182
8.3類的封裝185
8.4類的繼承186
8.5類的多態191
8.6鴨子類型193
8.7設計模式195
8.7.1設計模式的由來195
8.7.2單例模式195
8.7.3工廠模式199
8.8類套用案例203
第九章錯誤和異常|212
9.1錯誤212
9.2異常213
9.3處理異常214
9.3.1try-except語句214
9.3.2捕獲多個異常215
9.3.3捕獲全部異常217
9.3.4列印異常信息218
9.3.5else語句219
9.3.6finally語句220
9.3.7raise語句221
第十章檔案|222
10.1打開檔案與關閉檔案222
10.1.1打開檔案222
10.1.2關閉檔案225
10.2讀寫檔案225
10.2.1讀取檔案226
10.2.2寫入檔案227
10.3二進制檔案228
10.3.1shelve模組——Python對象持久化228
10.3.2pickle模組——Python對象序列化229
10.4JSON檔案230
10.4.1JSON數據結構230
10.4.2JSON數據類型231
10.4.3Python操作JSON數據232
第十一章模組和包|234
11.1模組234
11.1.1模組搜尋路徑235
11.1.2import語句236
11.1.3dir()函式240
11.1.4將模組作為腳本執行241
11.2包243
11.2.1包的導入243
11.2.2初始化包245
11.2.3子包246
11.3常用內建模組248
11.3.1math模組248
11.3.2random模組250
11.3.3datetime模組251
11.3.4time模組253
11.3.5copy模組254
11.3.6re模組256
11.3.7os模組258
第十二章Python多進程和多執行緒|261
12.1進程和執行緒261
12.1.1多任務作業系統261
12.1.2進程和執行緒261
12.1.3多進程和多執行緒262
12.2多執行緒程式262
12.3執行緒鎖(Lock)264
12.4PythonQueue(單向佇列)267
12.5生產者-消費者模型實現多執行緒異步互動268
12.6multiprocessing模組270
12.7Pool進程池271
12.8進程間的通信273
第十三章Python網路開發|275
13.1TCP/IP協定275
13.2Socket編程277
13.2.1Socket概述277
13.2.2TCP客戶端案例278
13.2.3TCP伺服器端案例281
13.2.4UDP通信284
13.2.5網路測試工具285
第十四章Pygame基礎|288
14.1安裝Pygame288
14.1.1安裝pip288
14.1.2安裝Pygame289
14.2Pygame的基本使用290
14.2.1遊戲循環和模板290
14.2.2使用Sprite(精靈)類293
第十五章飛機大戰遊戲開發|297
15.1遊戲框架297
15.1.1遊戲視窗297
15.1.2遊戲循環297
15.2玩家飛機類298
15.2.1玩家飛機類的屬性298
15.2.2玩家飛機類的方法299
15.3敵機類302
15.3.1敵機類的屬性302
15.3.2敵機類的方法303
15.4子彈類305
15.4.1玩家飛機子彈類305
15.4.2敵機子彈類306
15.5檢測碰撞函式307
15.6控制玩家飛機函式308
15.7遊戲的場景309
15.7.1遊戲啟動界面309
15.7.2遊戲結束界面310
15.7.3遊戲過程界面312