第1章Python起步走11.1 認識Python2
1.1.1 Python3的誕生2
1.1.2 從Python3.0到3.53
1.1.3 初識Python的社區資源5
1.2 建立Python環境6
1.2.1 Python的實現6
1.2.2 下載與安裝Python3.58
1.2.3 認識安裝的內容10
1.3 重點復習12
第2章從REPL到IDE14
2.1 從HelloWorld開始15
2.1.1 使用REPL15
2.1.2 編寫Python源碼18
2.1.3 哈?!世界!20
2.2 初識模塊與軟件包23
2.2.1 模塊簡介23
2.2.2 設置PYTHONPATH25
2.2.3 使用軟件包管理模塊27
2.2.4 使用importas與fromimport28
2.3 使用IDE29
2.3.1 下載、安裝PyCharm29
2.3.2 IDE項目管理基礎31
2.4 重點復習35
第3章類型與運算符36
3.1 內建類型37
3.1.1 數值類型37
3.1.2 字符串類型39
3.1.3 群集類型45
3.2 變量與運算符50
3.2.1 變量50
3.2.2 加減乘除運算52
3.2.3 比較與賦值運算56
3.2.4 邏輯運算57
3.2.5 位運算58
3.2.6 索引切片運算60
3.3 重點復習62
課后練習64
第4章流程語句與函數65
4.1 流程語句66
4.1.1 if分支判斷66
4.1.2 while循環68
4.1.3 forin迭代70
4.1.4 pass、break、continue72
4.1.5 forComprehension72
4.2 定義函數74
4.2.1 使用def定義函數75
4.2.2 參數與自變量76
4.2.3 一級函數的運用79
4.2.4 lambda表達式83
4.2.5 初探變量作用域84
4.2.6 yield與yieldfrom87
4.3 重點復習90
課后練習91
第5章從模塊到類93
5.1 模塊管理94
5.1.1 用模塊建立抽象層94
5.1.2 管理模塊名稱96
5.1.3 設置PTH文件99
5.2 初識面向對象101
5.2.1 定義類101
5.2.2 定義方法102
5.2.3 定義內部屬性105
5.2.4 定義外部屬性106
5.3 類語法的細節108
5.3.1 綁定與未綁定方法108
5.3.2 靜態方法與類方法110
5.3.3 屬性命名空間111
5.3.4 定義運算符114
5.3.5 __new__()、__init__()與__del__()116
5.4 重點復習118
課后練習120
第6章類的繼承121
6.1 何謂繼承122
6.1.1 繼承共同行為122
6.1.2 鴨子類型124
6.1.3 重新定義方法125
6.1.4 定義抽象方法126
6.2 繼承語法的細節128
6.2.1 初識object與super()128
6.2.2 Richcomparison方法130
6.2.3 使用enum枚舉132
6.2.4 多重繼承134
6.2.5 創建ABC(抽象基類)136
6.2.6 探討super()138
6.3 文檔與軟件包資源141
6.3.1 DocStrings142
6.3.2 查詢官方文檔145
6.3.3 PyPI與pip146
6.4 重點復習147
課后練習148
第7章例外處理149
7.1 語法與繼承結構150
7.1.1 使用try、except150
7.1.2 例外繼承結構153
7.1.3 引發(raise)例外155
7.1.4 Python例外風格159
7.1.5 認識堆棧追蹤160
7.1.6 提出警告信息163
7.2 例外與資源管理165
7.2.1 使用else、finally165
7.2.2 使用withas167
7.2.3 實現上下文管理器169
7.3 重點復習172
課后練習173
第8章open()與io模塊175
8.1 使用open()函數176
8.1.1 file與mode參數176
8.1.2 buffering、encoding、errors、newlines參數180
8.1.3 stdin、stdout、stderr181
8.2 高級文件處理183
8.2.1 認識文件描述符183
8.2.2 認識io模塊185
8.3 重點復習188
課后練習189
第9章數據結構190
9.1 hashable、iterable與orderable191
9.1.1 hashable協議191
9.1.2 iterable協議193
9.1.3 orderable協議196
9.2 高級群集處理199
9.2.1 認識群集結構199
9.2.2 使用collection模塊201
9.2.3 __getitem__()、__setitem__()、__delitem__()208
9.2.4 使用collection.abc模塊209
9.2.5 UserList、UserDict、UserString類211
9.3 重點復習211
課后練習213
第10章數據持續性與交換214
10.1對象序列化215
10.1.1使用pickle模塊215
10.1.2使用shelve模塊217
10.2數據庫的處理219
10.2.1認識DB-API2.0219
10.2.2使用sqlite3模塊220
10.2.3參數化SQL語句222
10.2.4簡介交易223
10.3數據交換格式227
10.3.1CSV227
10.3.2JSON231
10.3.3XML235
10.4重點復習239
課后練習240
第11章常用內建模塊241
11.1 日期與時間242
11.1.1 時間的度量242
11.1.2 年歷與時區簡介243
11.1.3 使用time模塊245
11.1.4 使用datetime模塊247
11.2 日志251
11.2.1 簡介Logger251
11.2.2 使用Handler、Formatter與Filter253
11.2.3 使用logging.config255
11.3 正則表達式258
11.3.1 正則表達式簡介258
11.3.2 Pattern與Match對象263
11.4 文件與目錄266
11.4.1 使用os模塊266
11.4.2 使用os.path模塊268
11.4.3 使用glob模塊270
11.5 重點復習272
課后練習273
第12章調試、測試與性能274
12.1 調試275
12.1.1 認識Debugger275
12.1.2 使用pdb模塊277
12.2 測試281
12.2.1 使用assert斷言281
12.2.2 編寫doctest283
12.2.3 使用unittest單元測試286
12.3 性能288
12.3.1 timeit模塊288
12.3.2 使用cProfile(profile)290
12.4 重點復習292
課后練習293
第13章并發與并行294
13.1 并發295
13.1.1 線程簡介295
13.1.2 線程的啟動與停止297
13.1.3 競爭、鎖定、死鎖300
13.1.4 等待與通知303
13.2 并行307
13.2.1 使用subprocess模塊307
13.2.2 使用multiprocessing模塊309
13.3 重點復習312
課后練習313
第14章高級主題314
14.1 屬性控制315
14.1.1 描述器315
14.1.2 定義__slots__318
14.1.3__getattribute__()、__getattr__()、__setattr__()、__delattr__()320
14.2 裝飾器321
14.2.1 函數裝飾器321
14.2.2 類裝飾器324
14.2.3 方法裝飾器327
14.3 Meta類328
14.3.1 認識type類328
14.3.2 指定metaclass330
14.3.3 __abstractmethods__332
14.4 相對導入333
14.5 重點復習335
課后練習336
附錄Avenv337
附錄BDjango簡介339