本書共五個部分。第一部分(前10章)為基礎篇,介紹Python概述、語言基礎、分支和循環(huán)控制、序列(列表、元組、集合、字典)、數(shù)組和矩陣、字符串和正則表達式、函數(shù)和模塊、面向?qū)ο缶幊、文件操作和異常處理等?nèi)容。第二部分(后10章)為應用篇,介紹二維圖表、三維圖像、聲頻、視頻;Python操作的數(shù)據(jù)庫介紹MySQL、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB等內(nèi)容均完成了應用實例;Office組件介紹Word、Excel和PowerPoint的內(nèi)容,并有綜合應用實例;介紹在C++中如何使用Python,以及在Python中如何使用C++。第三部分為實驗。第四部分為習題。第五部分為附錄,提供Python調(diào)試及其實例。本書將命令和編程結合,編程和常用算法結合,學習和應用結合;配套教程、習題、實驗等,并各有側(cè)重、相互配合;提供配套教學視頻,介紹和分析Python實例,可更好地理解Python及其應用。同時,通過網(wǎng)絡配套提供所有實例源程序(.py)及其工程、數(shù)據(jù)庫文件、教學課件,以方便教學和學生模仿。本書既可作為大學本科和高職高專院校有關課程教材,也可作為Python學習、培訓講義。
鄭阿奇,南京師范大學計算機科學與技術學院,副教授,東南大學本科,曾任計算機軟件系主任,獲選南京師范大學教學名師培養(yǎng)人選。主編5套計算機系列教材,獲教育部優(yōu)秀教材二等獎、電子部優(yōu)秀教材二等獎、兩次獲江蘇省優(yōu)秀教學成果二等獎、江蘇省暢銷圖書編輯二等獎、全國高校出版社優(yōu)秀暢銷書二等獎、兩次獲南京師范大學優(yōu)秀教學成果一等獎、南京師范大學精品教材一等獎。參加主持國家八六三計劃子項目、江蘇省科技開發(fā)項目,主持南京市科技開發(fā)項目、泰州市科委項目、金陵石化公司項目,獲江蘇省優(yōu)秀軟件獎,江蘇省科技進步獎、南京市創(chuàng)新成果獎。獲國家發(fā)明專利和實用新型專利20多個。
目 錄
第一部分 基 礎 篇
第1章 Python,掀起你的蓋頭來 1
1.1 Python簡介 1
1.2 安裝Python及其擴展庫 2
1.2.1 安裝Python 2
1.2.2 Python集成開發(fā)環(huán)境—IDLE 5
1.3 PyCharm開發(fā)環(huán)境的安裝和設置 5
1.3.1 PyCharm的安裝 6
1.3.2 PyCharm程序設計環(huán)境 9
1.3.3 一個簡單的程序?qū)嵗?11
1.4 擴展庫的安裝和使用 13
1.4.1 擴展庫的安裝 13
1.4.2 擴展庫的導入和使用 15
1.4.3 編程環(huán)境同步 16
1.5 Python說明 16
1.5.1 程序語法規(guī)則 16
1.5.2 Python語言的執(zhí)行 19
1.5.3 name屬性的作用 19
第2章 Python雖神,語言基礎并不特別 20
2.1 數(shù)據(jù)類型 20
2.1.1 數(shù)值 20
2.1.2 字符串與字節(jié)串 22
2.1.3 數(shù)據(jù)類型轉(zhuǎn)換 23
2.1.4 類型變量 25
2.2 運算符與表達式 26
2.2.1 算術運算符及其表達式 26
2.2.2 關系運算符及其表達式 27
2.2.3 位運算符及其表達式 27
2.2.4 邏輯運算符及其表達式 28
2.2.5 字符串基本運算及其表達式 29
2.2.6 賦值運算符 30
2.2.7 與同性判斷運算符 31
2.3 基本輸入和輸出 31
2.3.1 輸出到屏幕 31
2.3.2 鍵盤輸入 33
2.4 綜合應用實例 34
第3章 這樣就能控制:分支和循環(huán) 35
3.1 選擇結構 35
3.1.1 if語句的三種形式 35
3.1.2 if語句的嵌套 38
3.2 循環(huán)結構 38
3.2.1 循環(huán)語句 38
3.2.2 循環(huán)控制語句 40
3.2.3 循環(huán)嵌套 41
3.3 范圍和迭代器 42
3.3.1 范圍 42
3.3.2 迭代器 43
3.4 綜合應用舉例 43
第4章 序列是什么:列元字集 46
4.1 列表:list 46
4.1.1 創(chuàng)建列表 46
4.1.2 索引和切片 47
4.1.3 列表的基本操作 48
4.1.4 列表方法 49
4.1.5 列表推導式 52
4.2 元組:tuple 54
4.2.1 元組的基本操作 54
4.2.2 生成器推導式 55
4.3 集合:set 56
4.3.1 集合的創(chuàng)建與訪問 56
4.3.2 集合的基本操作符 57
4.4 字典:dict 59
4.4.1 字典的基本操作符 59
4.4.2 字典方法 60
4.5 序列 62
4.5.1 序列間的轉(zhuǎn)換 62
4.5.2 常用內(nèi)置函數(shù) 64
4.6 綜合應用實例 67
第5章 又是數(shù)組,又是矩陣 70
5.1 數(shù)組 70
5.1.1 創(chuàng)建數(shù)組 70
5.1.2 元素的增加、查詢、修改、
刪除 71
5.1.3 分割切片 73
5.1.4 運算 73
5.1.5 條件函數(shù) 74
5.2 矩陣 75
5.2.1 創(chuàng)建矩陣 75
5.2.2 常用的矩陣運算 76
5.2.3 常用的矩陣求值 77
5.2.4 矩陣的分隔和合并 78
5.2.5 矩陣和數(shù)組 79
5.3 array模塊數(shù)據(jù)庫基本概念 80
第6章 雖是字符串,還要正則表達式 83
6.1 基本說明 83
6.1.1 字符串編碼 83
6.1.2 轉(zhuǎn)義字符 84
6.1.3 字符串常量 85
6.2 字符串格式化 86
6.2.1 用%符號進行格式化 86
6.2.2 用format()方法格式化 87
6.2.3 格式化的字符串常量 88
6.2.4 用template模板格式化 89
6.3 字符串常用操作 89
6.3.1 字符串創(chuàng)建和訪問 89
6.3.2 字符串操作和判斷 91
6.3.3 字符串排版和切片 93
6.3.4 綜合應用實例 93
6.4 正則表達式 94
6.4.1 正則表達式元字符 94
6.4.2 正則表達式模塊re 95
6.4.3 match對象和正則表達式子
模式 98
6.4.4 綜合應用實例 98
第7章 代碼重用和共享:函數(shù)和模塊 100
7.1 Python程序結構 100
7.2 用戶編寫函數(shù) 101
7.2.1 函數(shù)定義與調(diào)用 101
7.2.2 函數(shù)嵌套定義 102
7.2.3 修飾器 102
7.2.4 列表推導式 103
7.3 參數(shù)傳遞 103
7.3.1 定長參數(shù) 104
7.3.2 可變長度參數(shù) 105
7.3.3 序列解包 105
7.4 函數(shù)嵌套與遞歸 106
7.5 變量作用域 107
7.5.1 局部變量 107
7.5.2 全局變量 108
7.6 lambda表達式 108
7.7 成器函數(shù)設計 110
7.8 模塊 111
7.9 命名空間 112
7.9.1 命名空間的分類 112
7.9.2 命名空間的規(guī)則 113
7.10 包 113
7.10.1 包介紹 114
7.10.2 包管理工具 114
7.11 綜合應用實例 115
第8章 對象需要談一談:面向?qū)ο缶幊?117
8.1 類 117
8.1.1 基本概念 117
8.1.2 類的定義與使用 118
8.1.3 數(shù)據(jù)成員 119
8.1.4 方法 120
8.1.5 屬性 122
8.1.6 動態(tài)性 123
8.2 繼承、多態(tài) 124
8.2.1 繼承 124
8.2.2 多重繼承 125
8.2.3 多態(tài) 126
8.3 運算符重載 127
第9章 信息永久保存:文件操作 129
9.1 文件及其操作 129
9.1.1 文件類型 129
9.1.2 文件的打開和關閉 130
9.2 文件操作 131
9.2.1 寫入方法 131
9.2.2 讀取操作方法 132
9.2.3 定位與移動 132
9.2.4 文件設備 133
9.2.5 上下文管理語句 134
9.3 序列化和反序列化 134
9.4 文件和文件夾的操作 135
9.4.1 文件操作 135
9.4.2 目錄操作 135
第10章 野馬不會脫韁:異常處理 137
10.1 異常的產(chǎn)生 137
10.2 內(nèi)置異常類 137
10.3 異常處理結構 138
10.4 拋出異常 142
10.5 自定義異常 143
10.6 斷言語句 143
第二部分 應 用 篇
第11章 拿起一支筆畫來畫去:二維圖表
實例 145
11.1 單幅圖表:繪制螺旋曲線實例 145
11.1.1 背景知識 145
11.1.2 實現(xiàn)原理 146
11.1.3 程序及分析 147
11.2 繪制多軸圖表:展示初等函數(shù)實例 148
11.2.1 背景知識 148
11.2.2 實現(xiàn)原理 149
11.2.3 程序及分析 150
11.3 定制表軸刻度:演示擺線形成實例 152
11.3.1 背景知識 152
11.3.2 實現(xiàn)原理 153
11.3.3 程序及分析 153
第12章 為什么這么快:數(shù)值處理及實例 156
12.1 數(shù)組的創(chuàng)建 156
12.1.1 NumPy數(shù)組函數(shù) 156
12.1.2 數(shù)組維度設定 157
12.1.3 函數(shù)生成數(shù)組 158
12.2 數(shù)組的存取 159
12.2.1 基本存取方法 159
12.2.2 多維數(shù)組的存取 160
12.2.3 結構數(shù)組的存取:讀取修改
學生成績 163
12.3 ufunc函數(shù) 165
12.3.1 內(nèi)置ufunc函數(shù) 165
12.3.2 自定義ufunc函數(shù):提取任
意范圍素數(shù) 166
12.3.3 ufunc函數(shù)的性能 167
12.4 綜合應用實例:斐波那契法計算
黃金分割數(shù) 169
12.4.1 背景知識 169
12.4.2 算法設計 170
12.4.3 編程實現(xiàn) 172
第13章 進入立體世界:三維可視化實例 176
13.1 3D繪圖入門:繪制圓柱體 176
13.1.1 基本概念 176
13.1.2 繪圖流程 177
13.1.3 VTK繪制圓柱體 179
13.1.4 TVTK繪制圓柱體 180
13.2 TVTK繪圖進階 182
13.2.1 流水線瀏覽器:改變圓柱
外觀 182
13.2.2 多實體場景:繪制多種幾
何體 185
13.3 使用第三方模具:文件載入
“胡巴” 187
13.3.1 背景知識 187
13.3.2 程序?qū)崿F(xiàn) 188
13.3.3 控制照相機 190
第14章 精彩紛呈:可視化科學計算實例 192
14.1 SciPy科學計算功能 192
14.1.1 數(shù)據(jù)擬合 192
14.1.2 插值優(yōu)化 193
14.1.3 信號處理 194
14.2 Mayavi可視化應用 195
14.2.1 繪制空間曲面:電子衍射
圖案 195
14.2.2 復雜三維圖形:模擬穿越
蟲洞 198
14.2.3 標量場可視化:地月系引
力場 201
14.3 綜合應用實例:蝴蝶效應演示 203
14.3.1 背景知識 203
14.3.2 實現(xiàn)原理 204
14.3.3 程序演示 204
第15章 流行數(shù)據(jù)庫世界:操作實例 208
15.1 基本原理 208
15.1.1 Python訪問數(shù)據(jù)庫原理 208
15.1.2 數(shù)據(jù)庫操作的一般步驟 210
15.2 Python操作MySQL 213
15.2.1 環(huán)境安裝 214
15.2.2 程序及分析 215
15.3 Python操作SQLite 217
15.3.1 SQLite簡介 217
15.3.2 程序及分析 217
15.4 Python操作MongoDB 219
15.4.1 環(huán)境安裝 219
15.4.2 程序及分析 221
15.5 Python操作PostgreSQL 223
15.5.1 環(huán)境安裝 223
15.5.2 程序及分析 225
15.6 Python操作其他數(shù)據(jù)庫 228
15.6.1 Python操作SQL Server 228
15.6.2 Python操作Oracle 230
第16章 窗口從何而來:界面設計實例 234
16.1 界面編程入門 234
16.1.1 編程的一般步驟 234
16.1.2 第一個Tkinter程序 235
16.1.3 界面的事件響應 236
16.2 窗體基本控件 237
16.2.1 Tkinter控件概述 237
16.2.2 標簽 238
16.2.3 復選框 238
16.2.4 單選按鈕 239
16.2.5 標簽組框 240
16.2.6 輸入框 241
16.2.7 列表框與滾動條 243
16.3 綜合應用實例:人員信息管理系統(tǒng) 244
16.3.1 數(shù)據(jù)庫準備 244
16.3.2 系統(tǒng)實現(xiàn) 245
16.3.3 功能演示 248
16.4 用Qt設計Python程序界面 250
16.4.1 Qt簡介及功能展示 250
16.4.2 用Qt設計圖形界面 252
16.4.3 Qt界面向Python轉(zhuǎn)化 256
16.4.4 Python添加功能邏輯 257
16.5 Tkinter界面呈現(xiàn)MatPlotLib圖表 260
第17章 網(wǎng)絡爬蟲,爬來爬去實例 262
17.1 爬蟲概述 262
17.1.1 權限及試驗用網(wǎng)站 262
17.1.2 爬蟲工作的基本流程 263
17.2 基于Requests的爬蟲 266
17.2.1 環(huán)境安裝 267
17.2.2 程序?qū)崿F(xiàn) 268
17.3 Python內(nèi)置Urllib爬蟲庫 269
17.3.1 獲取導航欄標題 270
17.3.2 搜索特定關鍵詞 271
17.3.3 抓取頁面上的圖片 273
17.4 綜合應用實例:爬蟲獲取天氣預報 275
17.4.1 定位資源路徑 275
17.4.2 程序?qū)崿F(xiàn) 277
第18章 到Office晃一晃:操作Excel/Word/
PowerPoint實例 279
18.1 Python操作Excel 279
18.1.1 基本操作 279
18.1.2 單元格操作與計算:統(tǒng)計
高考錄取人數(shù)與錄取率 280
18.2 Python操作Word 282
18.2.1 環(huán)境安裝 282
18.2.2 基本讀/寫 283
18.2.3 載入文檔表格:讀取歷年
高考統(tǒng)計信息 284
18.2.4 輸出文檔表格:2013—2017
年高考信息統(tǒng)計表 286
18.3 Python操作PowerPoint 287
18.3.1 環(huán)境安裝 287
18.3.2 第一張幻燈片 289
18.3.3 讀取幻燈片中的表格:2013—
2017年高考人數(shù)和錄取率 290
18.3.4 繪制柱狀圖表:畫出2008—
2012年高考報名人數(shù)柱
狀圖 292
18.4 綜合應用實例:統(tǒng)計并演示全國
高等教育普及率 293
18.4.1 原始Word數(shù)據(jù)準備 293
18.4.2 數(shù)據(jù)轉(zhuǎn)存Excel計算 294
18.4.3 輸出至PowerPoint演示 295
第19章 圖像可以這樣變化:圖像處理實例 298
19.1 Python圖片基本處理 298
19.1.1 三種處理方式 298
19.1.2 模式轉(zhuǎn)換:彩色照片畫面
作舊 300
19.1.3 增強與濾波:海底攝影照片
美化 302
19.2 多圖合成技術 304
19.2.1 圖像合成的兩種方式 304
19.2.2 插值合成:雜技演員動作
合成 305
19.2.3 通道合成:人魚美照融入
背景 306
19.3 圖像截取與抓拍 308
19.3.1 圖像截取:人物肖像輪廓
提取 308
19.3.2 畫面抓拍:藝術體操表演
抓拍 310
19.4 綜合應用實例:長白山天池水怪
研究 313
19.4.1 背景知識 313
19.4.2 處理水怪的影像 315
19.4.3 觀察、研究及結論 316
第20章 其他也精彩:音頻、動畫、視頻與
C++實例 318
20.1 音頻處理:流行歌曲串燒 318
20.1.1 歌曲介紹 318
20.1.2 Python音頻處理模塊 319
20.1.3 用Python實現(xiàn)歌曲串燒 319
20.1.4 合成的新曲 322
20.2 動畫制作:阿基米德螺線的生成
演示 323
20.2.1 動畫相關組件 323
20.2.2 程序?qū)崿F(xiàn) 323
20.2.3 演示效果 324
20.3 視頻處理:海洋館潛水員表演
視頻剪輯 324
20.3.1 Python視頻模塊 325
20.3.2 本例視頻處理需求 325
20.3.3 格式轉(zhuǎn)換 326
20.3.4 冗余幀采樣 328
20.3.5 必要幀處理 330
20.3.6 特殊處理 331
20.3.7 制作片頭和片尾 333
20.3.8 合成作品 335
20.4 Python與C++互操作 336
20.4.1 C++調(diào)用Python模塊功能 337
20.4.2 Python使用C++的DLL庫 341
第三部分 實 驗
實驗1 345
實驗2 346
實驗3 346
實驗4 347
實驗5 348
實驗6 349
實驗7 350
實驗8 351
實驗9 352
實驗10 353
實驗11 353
實驗12 354
實驗13 355
實驗14 357
實驗15 358
實驗16 359
實驗17 360
實驗18 361
實驗19 362
實驗20 362
第四部分 習 題
習題1 364
習題2 365
習題3 366
習題4 367
習題5 368
習題6 369
習題7 370
習題8 371
習題9 372
習題10 373
習題11 374
習題12 375
習題13 376
習題14 377
習題15 378
習題16 379
習題17 380
習題18 381
習題19 382
習題20 384
第五部分 附 錄
附錄A 磨刀不誤砍材工—Pycharm環(huán)境調(diào)試
Python程序 385
A.1 Python程序語法錯誤標識 385
A.2 Python程序調(diào)試基本方法 387
A.3 Python實例程序運行調(diào)試 387