第 1章 Python簡介\t1
1.1簡介\t1
1.2Python的特點\t2
1.2.1容易\t2
1.2.2輸入並運行\t2
1.2.3語法\t2
1.2.4混合性\t3
1.2.5動態類型\t3
1.2.6內置對像類型\t3
1.2.7大量的庫和工具\t3
1.2.8可移植性\t3
1.2.9免費\t3
1.3編程範型\t3
1.3.1過程式編程\t3
1.3.2面向對像編程\t4
1.3.3函數式編程\t4
1.4Python的發展歷史和應用
前景\t4
1.4.1發展歷史\t4
1.4.2應用前景\t4
1.5安裝Anaconda\t5
1.6小結\t9
1.6.1術語\t9
1.6.2知識要點\t9
1.7練習\t10
1.8理論回顧\t11
第 2章Python對像\t12
2.1簡介\t12
2.2基本數據類型\t14
2.2.1先睹為快\t15
2.2.2分數和小數\t16
2.3字符串\t16
2.3.1分片\t18
2.3.2字符串的不可變性\t18
2.4組\t19
2.4.1列表\t19
2.4組\t20
2.4組的特點\t21
2.5小結\t21
2.5.1術語\t22
2.5.2知識要點\t22
2.6練習\t22
2.7編程實踐\t24
第3章 條件語句\t25
3.1簡介\t25
3.2if、if-else和if-elif-else結構\t25
3.3if-elif-else階梯判斷\t30
3.4邏輯運算符\t30
3.運算符\t31
3.6get結構\t32
3.7示例\t33
3.8小結\t36
3.8.1語法\t36
3.8.2知識要點\t37
3.9練習\t37
3.10編程實踐\t39
第4章 循環\t41
4.1簡介\t41
4.2while\t42
4.3圖案\t44
4.4嵌套循環及其在列表中的
應用\t48
4.5小結\t50
4.5.1術語和語法\t51
4.5.2知識要點\t51
4.6練習\t51
4.7編程實踐\t53
第5章 函數\t54
5.1簡介\t54
5.2函數的特點\t54
5.2.1模塊式編程\t54
5.2.2代碼的可復用性\t54
5.2.3可管理性\t55
5.3基本術語\t55
5.3.1函數的命名\t55
5.3.2參數\t55
5.3.3返回值\t55
5.4定義和調用\t56
5.5函數的類型\t58
5.6實現搜索\t59
5.7作用域\t60
5.8遞歸\t62
5.8.1兔子問題\t62
5.8.2使用遞歸的缺點\t64
5.9小結\t64
5.9.1術語\t65
5.9.2知識要點\t65
5.10練習\t65
5.11編程實踐\t66
5.12關於遞歸的問題\t66
5.13理論回顧\t67
5.14附加題\t67
第6章 迭代器、生成器和列表解析\t70
6.1簡介\t70
6.2for的強大功能\t70
6.3迭代器\t72
6.4定義一個可迭代的對像\t74
6.5生成器\t75
6.6列表解析\t78
6.7小結\t80
6.7.1術語和函數\t81
6.7.2知識要點\t81
6.8練習\t81
6.9理論回顧\t82
6.10編程實踐\t82
第7章 文件處理\t84
7.1簡介\t84
7.2文件操作機制\t85
7.3open()函數和文件訪問模式\t85
7.4用於文件處理的Python函數\t87
7.4.1基本函數\t87
7.4.2與操作繫統相關的
方法\t88
7.4.3其他函數和文件
屬性\t88
7.5命令行參數\t89
7.6實現和說明\t90
7.7小結\t94
7.8練習\t94
7.9理論回顧\t96
7.10編程實踐\t97
第8章 字符串\t98
8.1簡介\t98
8.2for和while的用法\t98
8.3字符串運算符\t100
8.3.1連接運算符\t100
8.3.2替換運算符\t101
8.3.3成員運算符\t101
8.4處理字符串的函數\t102
8.4.1len()函數\t102
8.4.2capitalize()
函數\t103
8.4.3find()函數\t103
8.4.4count()函數\t103
8.4.5endswith()函數\t104
8.4.6encode()函數\t104
8.4.7decode()函數\t104
8.4.8其他函數\t105
8.5小結\t106
8.5.1術語\t106
8.5.2知識要點\t106
8.6練習\t107
8.7理論回顧\t108
8.8編程實踐\t109
第9章 面向對像範型簡介\t110
9.1簡介\t110
9.2創建新的類型\t111
9.3屬性和函數\t112
9.3.1屬性\t112
9.3.2函數\t112
9.4面向對像編程的要素\t114
9.4.1類\t115
9.4.2對像\t115
9.4.3封裝\t115
9.4.4數據隱藏\t116
9.4.5繼承\t116
9.4.6多態\t117
9.4.7可復用性\t117
9.5小結\t117
9.5.1術語\t118
9.5.2知識要點\t118
9.6練習\t119
9.7理論回顧\t120
9.8探索和設計\t120
第 10章 類和對像\t121
10.1簡介\t121
10.2定義類\t122
10.3創建對像\t122
10.4數據成員的作用域\t123
10.5嵌套\t125
10.6構造函數\t126
10.7構造函數重載\t127
10.8析構函數\t129
10.9小結\t130
10.9.1術語\t131
10.9.2知識要點\t131
10.10練習\t131
10.11理論回顧\t133
10.12編程實踐\t133
第 11章 繼承\t135
11.1繼承和組合\t135
11.1.1繼承和方法\t136
11.1.2組合\t138
11.2繼承的重要性及其類型\t141
11.2.1繼承的必要性\t142
11.2.2繼承的類型\t143
11.3方法\t149
11.3.1綁定的方法\t149
11.3.2未綁定的方法\t150
11.3.3方法是可調用的
對像\t151
11.3.4超類的重要性和
用法\t152
11.3.5使用super調用基類
函數\t152
11.4在繼承樹中搜索\t153
11.5類接口和抽像類\t155
11.6小結\t156
11.6.1術語\t157
11.6.2知識要點\t157
11.7練習\t157
11.8理論回顧\t159
11.9編程實踐\t159
第 12章 運算符重載\t161
12.1簡介\t161
12.2回顧__init__\t161
12.3運算符的方法\t164
12.4以分數為例
運算符\t164
12.5重載+=運算符\t168
12.6重載>和<運算符\t169
12.7重載__boolEan__運算符——
__bool__與__len__的優先級\t170
12.8析構函數\t172
12.9小結\t173
12.9.1術語\t173
12.9.2知識要點\t173
12.10練習\t173
12.11理論回顧\t174
12.12編程實踐\t175
第 13章 異常處理\t177
13.1簡介\t177
13.2重要性和機制\t178
13.2.1try/catch的
例子\t179
13.2.2手動引發異常\t180
13.3Python中內置的異常\t180
13.4過程\t181
13.4.1異常處理——
try/except\t182
13.4.2引發異常\t182
13.5構造用戶友好的異常\t183
13.6異常處理的示例\t184
13.7小結\t186
13.7.1語法\t187
13.7.2知識要點\t187
13.8練習\t187
13.9理論回顧\t188
13.10編程實踐\t189
第 14章 數據結構簡介\t190
14.1簡介\t190
14.2抽像數據類型\t192
14.3算法\t193
14.4數組\t194
14.5迭代算法和遞歸算法\t197
14.5.1迭代算法\t198
14.5.2遞歸算法\t200
14.6小結\t202
14.6.1術語\t202
14.6.2知識要點\t202
14.7練習\t203
14.8理論回顧\t204
14.9編程實踐\t204
第 15章 棧和隊列\t206
15.1簡介\t206
15.2棧\t206
15.3棧的動態實現\t208
15.4動態實現棧的另一種
方法\t210
15.5棧的應用\t211
15.5.1反轉一個字符串\t211
15.5.2中綴表達式、前綴表達式和後綴表達式\t212
15.6隊列\t214
15.7小結\t216
15.7.1術語\t216
15.7.2知識要點\t217
15.8練習\t217
15.9理論回顧\t218
15.10附加題\t218
15.11編程實踐\t219
第 16章 鏈表\t220
16.1簡介\t220
16.2操作\t221
16.3使用鏈表實現棧\t229
16.4使用鏈表實現隊列\t231
16.5小結\t232
16.5.1術語\t233
16.5.2知識點\t233
16.6練習\t233
16.7理論回顧\t234
16.8編程實踐\t235
16.9探索和設計\t235
第 17章 二叉搜索樹\t236
17.1簡介\t236
17.2定義和術語\t236
17.2.1圖的定義和表示\t236
17.2.2樹的定義、分類和
表示\t237
17.2.3二叉樹的表示\t239
17.2.4樹的遍歷—— 中序、
前序和後序\t240
17.3二叉搜索樹\t241
17.3.1創建和插入\t242
17.3.2遍歷\t245
17.3.3素和
17.4小結\t248
17.4.1術語\t248
17.4.2知識要點\t249
17.5練習\t249
17.6附加題\t250
17.7編程實踐\t251
第 18章 NumPy簡介\t252
18.1簡介\t252
18.2NumPy簡介以及基本數組的
創建\t253
18.3生成序列的函數\t254
18.3.1arange()\t255
18.3.2linspace()\t255
18.3.3logspace()\t256
18.4聚合函數\t256
18.5廣播\t259
18.6結構化數組\t262
18.7小結\t264
18.8練習\t264
18.9理論回顧\t266
18.10編程實踐\t266
第 19章 Matplotlib簡介\t268
19.1簡介\t268
19.2繪制函數\t268
19.3繪制子圖\t276
19.43D繪圖\t280
19.5小結\t285
19.5.1術語\t285
19.5.2知識要點\t286
19.6練習\t286
19.7理論回顧\t287
19.8編程實踐\t287
第 20章 圖像處理簡介\t289
20.1簡介\t289
20.2打開、讀取和寫入圖像\t290
20.2.1打開圖像\t290
20.2.2讀取圖像\t291
20.2.3把圖像寫入一個
文件中\t291
20.2.4顯示圖像\t291
20.3contour()函數\t292
20.4裁剪\t293
20.5圖像的統計信息\t295
20.6基本變換\t295
20.6.1平移\t295
20.6.2旋轉\t296
20.6.3縮放\t297
20.7小結\t298
20.7.1術語\t299
20.7.2知識要點\t299
20.8練習\t299
20.9理論回顧\t300
20.10編程實踐\t300
附錄A Python中的多線程\t301
附錄B 正則表達式\t306
附錄C 實踐練習和編程問題\t312
附錄D 實踐練習—— 選擇題\t320
附錄E 各章選擇題答案\t324