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