第Ⅰ部分 基礎篇
第1章
從零開始 2
視頻講解:35分鐘
1.1 概述 3
1.2 什么是Python語言 3
1.3 安裝Python 5
1.3.1
安裝準備工作 5
1.3.2
安裝Python的過程 5
1.4
Python代碼編輯工具 8
1.4.1
交互式解釋器 9
1.4.2
自帶GUI工具IDLE 10
1.4.3
其他商業(yè)級開發(fā)工具 11
1.5 第一個程序 12
1.5.1
案例[嗨,三酷貓。 12
1.5.2
Help 14
1.5.3
出錯與調試 14
1.6 良好的編程約定 17
1.7 習題及實驗 20
第2章
變量和簡單數(shù)據(jù)類型 22
視頻講解:27分鐘
2.1 變量 23
2.2 字符串 23
2.2.1
字符串基本操作 24
2.2.2
其他常用操作 26
2.2.3
案例[三酷貓釣魚記錄] 27
2.3 數(shù)字和運算符 27
2.3.1
算術運算符 28
2.3.2
整數(shù) 28
2.3.3
浮點數(shù) 29
2.3.4
復數(shù) 29
2.3.5
布爾 29
2.3.6
二進制 30
2.3.7
比較運算符 31
2.3.8
賦值運算符 33
2.4 數(shù)據(jù)類型轉換 33
2.5 案例[三酷貓記賬單] 34
2.6 習題及實驗 35
第3章 條件分支與循環(huán) 37
視頻講解:37分鐘
3.1
if條件分支 38
3.1.1
if語句基本用法 38
3.1.2
案例[三酷貓判斷找魚] 39
3.2
while循環(huán) 40
3.2.1
while語句基本用法 40
3.2.2
案例[三酷貓線性法找魚] 42
3.3
for循環(huán)語句 43
3.3.1
for語句基本用法 43
3.3.2
案例[三酷貓統(tǒng)計魚數(shù)量] 45
3.4 循環(huán)控制語句 45
3.4.1
break語句 45
3.4.2
continue語句 46
3.5 復雜條件及處理 47
3.5.1
成員運算符 47
3.5.2
身份運算符 48
3.5.3
運算符優(yōu)先級 49
3.6 案例[三酷貓核算收入] 50
3.7 習題及實驗 51
第4章 列表與元組 53
視頻講解:29分鐘
4.1 接觸列表 54
4.1.1
列表基本知識 54
4.1.2
列表元素增加 56
4.1.3
列表元素查找 56
4.1.4
列表元素修改 57
4.1.5
列表元素刪除 57
4.1.6
列表元素合并 59
4.1.7
列表元素排序 59
4.1.8
列表其他操作方法 60
4.2 基于列表算法 62
4.2.1
案例[三酷貓列表記賬] 62
4.2.2
案例[三酷貓冒泡法排序] 64
4.2.3
案例[三酷貓二分法查找] 65
4.2.4
案例[三酷貓列表統(tǒng)計] 67
4.3 元組 68
4.3.1
元組基本知識 68
4.3.2
元組操作實例 69
4.4 案例[三酷貓釣魚花樣大統(tǒng)計] 72
4.5 習題及實驗 74
第5章 字典 76
視頻講解:23分鐘
5.1 接觸字典 77
5.1.1
字典基本知識 77
5.1.2
字典元素增加 78
5.1.3
字典值查找 79
5.1.4
字典值修改 80
5.1.5
字典元素刪除 80
5.1.6
字典遍歷操作 81
5.1.7
字典其他操作方法 83
5.2 字典嵌套 84
5.2.1
字典嵌入字典 84
5.2.2
列表嵌入字典 85
5.2.3
字典嵌入列表 86
5.3 基于字典算法 87
5.3.1
案例[三酷貓字典記賬] 87
5.3.2
案例[三酷貓字典修改] 88
5.3.3
案例[三酷貓分類統(tǒng)計] 90
5.4 案例[三酷貓管理復雜的釣魚賬本] 92
5.5 習題及實驗 95
第6章 函數(shù) 97
視頻講解:19分鐘
6.1 函數(shù)基本知識 98
6.1.1
為什么要使用函數(shù) 98
6.1.2
函數(shù)基本定義 99
6.2 自定義函數(shù)第一步 100
6.2.1
不帶參數(shù)函數(shù) 100
6.2.2
帶參數(shù)函數(shù) 101
6.2.3
帶返回值函數(shù) 102
6.2.4
自定義函數(shù)的完善 103
6.2.5
把函數(shù)放到模塊中 105
6.3 自定義函數(shù)第二步 108
6.3.1
參數(shù)的變化 108
6.3.2
傳遞元組、列表、字典值 111
6.3.3
函數(shù)與變量作用域 113
6.3.4
匿名函數(shù) 115
6.3.5
遞歸函數(shù) 115
6.4 案例[三酷貓利用函數(shù)方法實現(xiàn)記賬統(tǒng)計] 119
6.4.1
函數(shù)統(tǒng)計需求 119
6.4.2
主程序實現(xiàn) 120
6.4.3
自定義函數(shù)實現(xiàn) 120
6.4.4
本案例代碼執(zhí)行結果 122
6.5 習題及實驗 123
第7章 類 124
視頻講解:27分鐘
7.1 初識類 125
7.1.1
為什么要引入類 125
7.1.2
案例[編寫第一個類] 127
7.1.3
實例 128
7.2 屬性使用 130
7.2.1
屬性值初始化 130
7.2.2
屬性值修改 131
7.2.3
把類賦給屬性 132
7.3 類改造問題 133
7.3.1
繼承 133
7.3.2
重寫方法 134
7.4 私有 134
7.5 把類放到模塊中 135
7.5.1
建立獨立類模塊過程 136
7.5.2
案例[把盒子類放到類模塊中] 136
7.6 類回顧 137
7.6.1
靜態(tài)類 137
7.6.2
類與實例概念總結 139
7.6.3
類與面向對象編程 139
7.6.4
類編寫其他事項 140
7.7 案例[三酷貓把魚裝到盒子里] 141
7.8 習題及實驗 143
第8章 標準庫 145
視頻講解:25分鐘
8.1
Python標準庫知識 146
8.2
datetime模塊 146
8.3
math模塊 149
8.4
random模塊 151
8.5
os模塊 152
8.6
sys模塊 153
8.7
time模塊 154
8.8 再論模塊 155
8.8.1
模塊文件 155
8.8.2
包 156
8.9 窺探標準庫源碼 157
8.10
案例[三酷貓解放了] 159
8.11
習題及實驗 160
第9章 異常 161
視頻講解:16分鐘
9.1 程序中的問題 162
9.2 捕捉異常 163
9.2.1
基本異常捕捉語句 163
9.2.2
帶finally子句的異常處理 165
9.2.3
捕捉特定異常信息 166
9.3 拋出異常 167
9.4 習題及實驗 168
第Ⅱ部分 Python提高篇
第10章 文件處理 170
視頻講解:20分鐘
10.1
文本文件 171
10.1.1
建立文件 171
10.1.2
基本的讀寫文件 172
10.1.3
復雜的讀寫文件 174
10.1.4
文件異常處理 176
10.1.5
文件與路徑 177
10.1.6
案例[三酷貓把釣魚結果數(shù)據(jù)存入文件] 179
10.2
JSON格式文件 180
10.2.1
JSON格式 181
10.2.2
讀寫JSON文件 182
10.3
XML格式文件 184
10.3.1
初識XML 184
10.3.2
生成XML文件 185
10.3.3
xml模塊 187
10.3.4
用SAX讀XML文件 188
10.3.5
用DOM讀寫XML文件 190
10.4
案例[三酷貓自建文件數(shù)據(jù)庫] 193
10.5
習題及實驗 199
第11章 圖形用戶界面 201
視頻講解:26分鐘
11.1
初識圖形用戶界面 202
11.1.1
接觸圖形用戶界面 202
11.1.2
相關開發(fā)工具 203
11.2
tkinter開發(fā)包 203
11.2.1
窗體 203
11.2.2
組件 205
11.2.3
常見事件類型 207
11.2.4
常見屬性對象 208
11.3
tkinter模塊下基本組件 209
11.3.1
tkinter下組件清單 209
11.3.2
簡易組件使用案例 210
11.3.3
Menu及messagebox組件使用案例 213
11.3.4
Canvas組件使用案例 215
11.3.5
PhotoImage組件使用案例 216
11.4
ttk子模塊下組件 217
11.4.1
Combobox組件 217
11.4.2
Notebook組件 218
11.4.3
Progressbar組件 219
11.4.4
Sizegrip組件 219
11.4.5
Treeview組件 220
11.5
tix子模塊下組件 222
11.5.1
文件選擇類組件 222
11.5.2
ButtonBox組件 223
11.6
scrolledtext子模塊下組件 224
11.7
拖拽組件 225
11.8
編譯成可執(zhí)行文件的實現(xiàn)過程 228
11.9
案例[三酷貓做到了數(shù)據(jù)可視化] 230
11.10
美輪美奐的turtle 231
11.11
習題及實驗 233
第12章 數(shù)據(jù)庫操作 235
視頻講解:17分鐘
12.1
數(shù)據(jù)庫使用概述 236
12.1.1
數(shù)據(jù)庫基本知識 236
12.1.2
訪問數(shù)據(jù)庫基本原理 237
12.1.3
ODBC與ADO 238
12.2
關系型數(shù)據(jù)庫 238
12.2.1
關系型數(shù)據(jù)庫支持清單 238
12.2.2
連接SQLite 239
12.2.3
連接MySQL 242
12.2.4
連接Oracle 247
12.2.5
案例[三酷貓建立記賬管理系統(tǒng)] 249
12.3
NoSQL數(shù)據(jù)庫 251
12.3.1
NoSQL數(shù)據(jù)庫支持清單 252
12.3.2
連接MongoDB 252
12.3.3
連接Redis 254
12.4
習題及實驗 255
第13章 線程與進程 257
視頻講解:17分鐘
13.1
接觸多任務技術 258
13.1.1
進程與線程簡介 258
13.1.2
多線程模塊 259
13.2
第一個多線程[搶火車票] 262
13.2.1
不使用線程 262
13.2.2
threading函數(shù)方式實現(xiàn) 264
13.2.3
threading類方式實現(xiàn) 266
13.3
線程同步 268
13.3.1
多線程競爭出錯 268
13.3.2
嘗試讓多線程共享數(shù)據(jù)出錯 268
13.3.3
CPython的痛 271
13.3.4
加鎖 273
13.3.5
防止死鎖 273
13.4
線程隊列模塊 275
13.5
并發(fā)進程模塊 278
13.5.1
Process創(chuàng)建多進程 279
13.5.2
基于Pool的多進程 280
13.5.3
基于Pipe的多進程 282
13.5.4
基于Queue的多進程 283
13.6
其他同步方法 284
13.7
案例[三酷貓玩爬蟲] 285
13.7.1
需求與準備工作 285
13.7.2
簡易多線程爬蟲實現(xiàn) 286
13.8
習題及實驗 287
第14章 測試及打包 288
14.1
代碼測試 289
14.1.1
doctest 289
14.1.2
unittest 291
14.2
代碼打包 293
14.2.1
distutils模塊 294
14.2.2
基本打包與安裝 295
14.2.3
擴展打包與安裝 297
14.2.4
編寫安裝配置文件 297
14.2.5
源碼發(fā)布格式 299
14.3
習題及實驗 299
第Ⅲ部分 Python拓展篇
第15章
Web應用入門 302
視頻講解:11分鐘
15.1
Web基礎知識 303
15.1.1
接觸Web 303
15.1.2
Browser/Server使用原理 305
15.1.3
網(wǎng)頁 307
15.1.4
感覺第一個Web應用 308
15.2
Web服務器 310
15.2.1
Web服務器會做什么工作 311
15.2.2
Apache服務器 311
15.2.3
IIS服務器 314
15.3
WSGI服務器接口 316
15.4
Web應用程序開發(fā) 316
15.5
案例[三酷貓簡易網(wǎng)站] 317
15.5.1
網(wǎng)站需求 317
15.5.2
實現(xiàn)代碼 317
15.6
習題及實驗 319
第16章
商業(yè)級別的技術框架 320
16.1
初識Web應用程序框架 321
16.2
web.py框架 321
16.2.1
使用準備 321
16.2.2
開發(fā)Web應用程序 322
16.2.3
使用模板 323
16.2.4
數(shù)據(jù)庫訪問 324
16.2.5
表單處理 326
16.2.6
使用Session 328
16.2.7
使用Cookie 331
16.2.8
Web實際使用環(huán)境部署 333
16.3
Django框架 334
16.3.1 Django簡介 334
16.3.2
Django安裝 335
16.3.3
網(wǎng)站(創(chuàng)建項目) 335
16.3.4
網(wǎng)站(連接數(shù)據(jù)庫) 337
16.3.5
網(wǎng)站(創(chuàng)建應用) 339
16.3.6
網(wǎng)站(后臺管理) 341
16.3.7
網(wǎng)站(投票應用) 342
16.3.8
網(wǎng)站(學習拓展) 346
16.4
案例[三酷貓魚產品動態(tài)網(wǎng)站] 346
16.4.1
網(wǎng)站準備工作 346
16.4.2
建立數(shù)據(jù)庫 346
16.4.3
Web應用實現(xiàn) 347
16.5
習題及實驗 349
第17章
大數(shù)據(jù)應用入門 350
17.1
什么是大數(shù)據(jù) 351
17.1.1
大數(shù)據(jù)基本知識 351
17.1.2
大數(shù)據(jù)技術三步曲 352
17.2
案例[一個完整的網(wǎng)絡爬蟲] 353
17.2.1
編寫網(wǎng)絡爬蟲準備工作 353
17.2.2
基于MongoDB的數(shù)據(jù)存儲 353
17.2.3
爬蟲獲取網(wǎng)頁數(shù)據(jù) 355
17.2.4
爬蟲獲取網(wǎng)頁內指定數(shù)據(jù) 357
17.2.5
爬蟲知識拓展 360
17.3
Python Spark 361
17.3.1
Spark基礎知識 362
17.3.2
使用環(huán)境安裝 363
17.3.3
pyspark基礎 367
17.3.4
案例[蒙特卡洛法求] 369
17.4
案例[三酷貓了解魚的價格] 371
17.5
習題及實驗 372
第18章
AI應用入門 374
18.1
什么是人工智能 375
18.1.1
從深藍到阿爾法狗 375
18.1.2
人工智能基礎知識 376
18.2
Python AI編程庫 377
18.2.1
科學計算和數(shù)據(jù)分析庫 377
18.2.2
數(shù)據(jù)可視化庫 380
18.2.3
計算機視覺庫 381
18.2.4
機器學習庫 382
18.2.5
其他知名的第三方庫 383
18.3
NumPy應用示例 383
18.3.1
安裝NumPy 383
18.3.2
數(shù)組相關計算 384
18.3.3
傅里葉變換 387
18.3.4
案例[一維離散傅里葉變換] 389
18.3.5
案例[二維離散傅里葉變換] 391
18.4
三酷貓的夢 392
18.5
習題及實驗 392
附錄一 IDLE代碼編寫工具菜單使用說明 394
附錄二 字符串轉義字符 396
附錄三 ASCII表 397
附錄四 math模塊函數(shù) 401
附錄五 第三方庫列表 404
附錄六 正則表達式 405
附錄七 附贈案例代碼清單 407
參考文獻 411
后記 41