本書結(jié)合編者多年的程序設(shè)計、系統(tǒng)開發(fā)與課程講授的經(jīng)驗(yàn),由淺入深、循序漸進(jìn)地介紹了Python程序設(shè)計方法,使讀者能夠系統(tǒng)、全面地掌握程序設(shè)計的理論與應(yīng)用。全書共13章,主要內(nèi)容包括:Python基礎(chǔ)知識與軟件安裝,數(shù)值、字符串、列表、元組、字典、集合數(shù)據(jù)類型,選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu),函數(shù)與lambda表達(dá)式,正則表達(dá)式、re模塊以及Match對象的使用方法,文本文件、Word文檔以及Excel文件的讀與寫,面向?qū)ο蟪绦蛟O(shè)計的相關(guān)知識,模塊和包的創(chuàng)建與使用,Tkinter圖形用戶界面設(shè)計,利用matplotlib庫實(shí)現(xiàn)數(shù)據(jù)可視化,Python連接以及使用其操作數(shù)據(jù)庫的方法,網(wǎng)絡(luò)編程、網(wǎng)頁解析以及網(wǎng)絡(luò)爬蟲等。
本書可作為計算機(jī)、人工智能、大數(shù)據(jù)等相關(guān)專業(yè)的程序設(shè)計課程教材,也可供非理工科專業(yè)的學(xué)生學(xué)習(xí)使用,還可作為Python愛好者的自學(xué)參考用書。
本書兼顧理論與實(shí)踐,由淺入深地對Python編程展開介紹,使讀者知其然并知其所以然,有效輔助知識傳播+技能掌握。
本書特色總結(jié)如下:
(1)適合零基礎(chǔ)讀者快速學(xué)通Python編程;
(2)層次脈絡(luò)清晰、理論難度適中、內(nèi)容簡單易懂;
(3)知識講解與代碼實(shí)現(xiàn)相結(jié)合,附加代碼詳細(xì)注釋;
(4)精選綜合案例,實(shí)戰(zhàn)提升Python應(yīng)用技能;
(5)配套教學(xué)PPT、源代碼等教輔資源。
曹潔,同濟(jì)大學(xué)計算機(jī)軟件與理論專業(yè)博士,鄭州輕工業(yè)大學(xué)軟件學(xué)院教師。研究方向:數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、并行分布式處理等。近年在軟件學(xué)報、電子學(xué)報、計算機(jī)研究與發(fā)展、通信學(xué)報等核心刊物上發(fā)表學(xué)術(shù)論文10余篇,2019年7月在清華大學(xué)出版社以第一作者身份出版高等院校信息技術(shù)規(guī)劃教材《Python語言程序設(shè)計(微課版)》。
第 1章 Python語言概述 1
1.1 Python語言特點(diǎn) 2
1.2 Python應(yīng)用領(lǐng)域 3
1.3 下載和安裝Python軟件 3
1.4 編寫和執(zhí)行Python代碼的方式 6
1.4.1 用命令行格式的Python Shell編寫和執(zhí)行代碼 6
1.4.2 用帶圖形界面格式的Python Shell編寫和執(zhí)行交互式代碼 7
1.4.3 用帶圖形界面格式的Python Shell編寫和執(zhí)行程序代碼 8
1.5 Python注釋 9
1.5.1 單行注釋 9
1.5.2 多行注釋 9
1.6 在線幫助 9
1.6.1 Python交互式幫助系統(tǒng) 9
1.6.2 Python文檔 11
習(xí)題1 12
第 2章 Python語言基礎(chǔ) 13
2.1 Python對象和引用 14
2.1.1 對象的身份 14
2.1.2 對象的類型 14
2.1.3 對象的值 14
2.1.4 對象的引用 14
2.2 數(shù)值數(shù)據(jù)類型 15
2.3 字符串?dāng)?shù)據(jù)類型 17
2.3.1 字符串創(chuàng)建 17
2.3.2 轉(zhuǎn)義字符 17
2.3.3 字符編碼 18
2.3.4 字符串運(yùn)算符 19
2.3.5 字符串對象的常用方法 20
2.3.6 字符串常量 25
2.4 列表數(shù)據(jù)類型 26
2.4.1 列表創(chuàng)建 26
2.4.2 列表截取 26
2.4.3 列表修改 27
2.4.4 序列數(shù)據(jù)類型的常用操作 27
2.4.5 用于列表的常用函數(shù) 28
2.4.6 列表對象的常用方法 29
2.4.7 列表生成式 31
2.5 元組數(shù)據(jù)類型 32
2.5.1 元組創(chuàng)建 32
2.5.2 元組訪問 32
2.5.3 元組修改 33
2.5.4 生成器推導(dǎo)式 33
2.6 字典數(shù)據(jù)類型 34
2.6.1 字典創(chuàng)建 34
2.6.2 字典訪問 35
2.6.3 字典元素的添加、修改與刪除 36
2.6.4 字典對象的常用方法 36
2.6.5 字典推導(dǎo)式 38
2.7 集合數(shù)據(jù)類型 38
2.7.1 集合創(chuàng)建 38
2.7.2 集合元素添加 38
2.7.3 集合元素刪除 39
2.7.4 集合運(yùn)算 39
2.7.5 集合推導(dǎo)式 40
2.8 Python數(shù)據(jù)類型之間的轉(zhuǎn)換 40
2.9 Python中的運(yùn)算符 42
2.9.1 Python算術(shù)運(yùn)算符 42
2.9.2 Python比較(關(guān)系)運(yùn)算符 42
2.9.3 Python賦值運(yùn)算符 43
2.9.4 Python位運(yùn)算符 43
2.9.5 Python邏輯運(yùn)算符 44
2.9.6 Python成員運(yùn)算符 44
2.9.7 Python身份運(yùn)算符 44
2.9.8 Python運(yùn)算符的優(yōu)先級 45
2.10 Python中的數(shù)據(jù)輸入 45
2.11 Python中的數(shù)據(jù)輸出 46
2.11.1 表達(dá)式語句輸出 47
2.11.2 print()函數(shù)輸出 47
2.11.3 字符串對象的format()方法輸出 49
2.12 Python庫的導(dǎo)入與擴(kuò)展庫的安裝 51
2.12.1 庫的導(dǎo)入 51
2.12.2 擴(kuò)展庫的安裝 52
習(xí)題2 53
第3章 程序流程控制 55
3.1 布爾表達(dá)式 56
3.2 選擇結(jié)構(gòu) 56
3.2.1 單向if選擇語句 56
3.2.2 雙向if-else選擇語句 57
3.2.3 嵌套if選擇語句和多向if-elif-else選擇語句 59
3.3 條件表達(dá)式 60
3.4 while循環(huán)結(jié)構(gòu) 61
3.5 while循環(huán)控制策略 63
3.5.1 交互式循環(huán) 64
3.5.2 哨兵式循環(huán) 64
3.5.3 文件式循環(huán) 65
3.6 for循環(huán)結(jié)構(gòu) 66
3.6.1 for循環(huán)的基本用法 66
3.6.2 for循環(huán)適用的對象 67
3.6.3 for循環(huán)與range()函數(shù)的結(jié)合使用 69
3.7 循環(huán)中的break、continue和else 71
3.7.1 用break語句提前終止循環(huán) 71
3.7.2 用continue語句提前結(jié)束本次循環(huán) 72
3.7.3 循環(huán)語句的else子句 73
習(xí)題3 74
第4章 函數(shù) 75
4.1 函數(shù)定義 76
4.2 函數(shù)調(diào)用 77
4.2.1 帶有返回值的函數(shù)調(diào)用 77
4.2.2 不帶返回值的函數(shù)調(diào)用 79
4.3 函數(shù)參數(shù)的類型 80
4.3.1 位置參數(shù) 80
4.3.2 關(guān)鍵字參數(shù) 80
4.3.3 默認(rèn)值參數(shù) 81
4.3.4 可變長度參數(shù) 81
4.3.5 序列解包參數(shù) 82
4.4 lambda表達(dá)式 83
4.4.1 lambda和def的區(qū)別 83
4.4.2 自由變量對lambda表達(dá)式的影響 85
4.5 函數(shù)的遞歸調(diào)用 86
4.6 常用內(nèi)置函數(shù) 88
4.6.1 map()函數(shù) 88
4.6.2 reduce()函數(shù) 89
4.6.3 filter()函數(shù) 90
習(xí)題4 90
第5章 正則表達(dá)式 91
5.1 正則表達(dá)式的構(gòu)成 92
5.2 正則表達(dá)式的模式匹配 95
5.2.1 邊界匹配 95
5.2.2 分組、選擇、引用、匹配 95
5.2.3 貪婪匹配與懶惰匹配 98
5.3 正則表達(dá)式模塊re 99
5.4 正則表達(dá)式對象 102
5.5 Match對象 103
習(xí)題5 104
第6章 文件與文件夾操作 105
6.1 文本文件 106
6.1.1 文本文件的字符編碼 106
6.1.2 文本文件的打開 107
6.1.3 文本文件的寫入 110
6.1.4 文本文件的讀取 111
6.1.5 文本文件指針的定位 112
6.2 文件與文件夾操作 113
6.2.1 使用os操作文件與文件夾 114
6.2.2 使用os.path操作文件與文件夾 115
6.2.3 使用shutil操作文件與文件夾 117
6.3 處理Word文檔 119
6.3.1 創(chuàng)建與保存Word文檔 119
6.3.2 讀取Word文檔 119
6.3.3 寫入Word文檔 120
6.4 處理Excel文件 121
6.4.1 利用xlrd模塊讀Excel文件 122
6.4.2 利用xlwt模塊寫Excel文件 124
習(xí)題6 124
第7章 面向?qū)ο蟪绦蛟O(shè)計 125
7.1 定義類 126
7.2 創(chuàng)建類的對象 126
7.3 類中的屬性 127
7.3.1 類的對象屬性 127
7.3.2 類屬性 128
7.3.3 私有屬性和公有屬性 130
7.3.4 @property裝飾器 132
7.4 類中的方法 134
7.4.1 類的對象方法 134
7.4.2 類方法 136
7.4.3 類的靜態(tài)方法 137
7.5 類的繼承 138
7.5.1 類的單繼承 138
7.5.2 類的多重繼承 141
7.5.3 類成員的繼承和重寫 143
7.5.4 查看繼承的層次關(guān)系 143
習(xí)題7 144
第8章 模塊和包 145
8.1 模塊 146
8.1.1 模塊的創(chuàng)建 146
8.1.2 模塊的導(dǎo)入和使用 147
8.1.3 模塊的主要屬性 147
8.2 系統(tǒng)目錄的添加 150
8.2.1 導(dǎo)入模塊時搜索目錄的順序 150
8.2.2 使用sys.path.append()臨時添加系統(tǒng)目錄 151
8.2.3 使用pth文件永久添加系統(tǒng)目錄 151
8.2.4 使用PYTHONPATH環(huán)境變量永久添加系統(tǒng)目錄 151
8.3 包 152
8.3.1 包的創(chuàng)建 152
8.3.2 包的導(dǎo)入與使用 153
習(xí)題8 154
第9章 圖形用戶界面設(shè)計 155
9.1 圖形用戶界面庫 156
9.2 Tkinter圖形用戶界面庫 156
9.2.1 Tkinter概述 156
9.2.2 Tkinter圖形用戶界面的構(gòu)成 157
9.3 常用Tkinter組件的使用 158
9.3.1 標(biāo)簽組件 158
9.3.2 按鈕組件 160
9.3.3 單選按鈕組件 162
9.3.4 多行文本框組件 164
9.3.5 復(fù)選框組件 166
9.3.6 列表框組件 169
9.3.7 菜單組件 171
9.3.8 消息組件 174
9.3.9 消息窗口 174
9.3.10 單行文本框組件 175
9.3.11 框架組件 177
9.4 使用Canvas(畫布)組件繪圖 178
9.4.1 Canvas(畫布)組件 178
9.4.2 繪制直線 179
9.4.3 繪制矩形 180
9.4.4 繪制多邊形 181
9.4.5 繪制橢圓 182
9.4.6 繪制文本 183
9.4.7 繪制圖像 184
9.5 Tkinter的主要幾何布局管理器 184
9.5.1 pack布局管理器 184
9.5.2 grid布局管理器 186
9.5.3 place布局管理器 187
習(xí)題9 188
第 10章 利用matplotlib庫實(shí)現(xiàn)數(shù)據(jù)可視化 189
10.1 matplotlib庫概述 190
10.2 繪制線形圖 193
10.3 繪制直方圖 199
10.4 繪制條形圖 200
10.5 繪制餅圖 204
10.6 繪制散點(diǎn)圖 206
習(xí)題10 207
第 11章 數(shù)據(jù)庫編程 209
11.1 數(shù)據(jù)庫基礎(chǔ) 210
11.1.1 關(guān)系型數(shù)據(jù)庫 210
11.1.2 通用數(shù)據(jù)庫訪問模塊 210
11.2 SQLite3數(shù)據(jù)庫 211
11.2.1 Connection對象 212
11.2.2 Cursor對象 213
11.3 Access數(shù)據(jù)庫 215
11.3.1 創(chuàng)建Access數(shù)據(jù)庫 216
11.3.2 操作Access數(shù)據(jù)庫 219
11.4 MySQL數(shù)據(jù)庫 219
11.4.1 連接MySQL數(shù)據(jù)庫 219
11.4.2 創(chuàng)建游標(biāo)對象 220
11.4.3 執(zhí)行SQL語句 220
11.4.4 創(chuàng)建數(shù)據(jù)庫 221
11.4.5 創(chuàng)建數(shù)據(jù)表 221
11.4.6 插入數(shù)據(jù) 222
11.4.7 查詢數(shù)據(jù) 223
11.4.8 更新數(shù)據(jù)和刪除數(shù)據(jù) 224
11.5 JSON數(shù)據(jù) 225
11.5.1 JSON數(shù)據(jù)格式 225
11.5.2 Python解碼和編碼JSON數(shù)據(jù) 226
11.5.3 Python操作JSON文件 227
習(xí)題11 228
第 12章 網(wǎng)絡(luò)編程 229
12.1 計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識 230
12.1.1 網(wǎng)絡(luò)協(xié)議 230
12.1.2 應(yīng)用層協(xié)議 231
12.1.3 傳輸層協(xié)議 231
12.1.4 IP地址和MAC地址 232
12.2 Socket編程 232
12.2.1 Socket概念 232
12.2.2 Socket類型 233
12.2.3 Socket對象的常用方法 233
12.3 TCP編程 236
12.4 UDP編程 239
12.5 HTTP編程 241
12.5.1 HTTP特性 241
12.5.2 HTTP通信過程 242
12.5.3 HTTP報文結(jié)構(gòu) 242
12.5.4 使用requests庫實(shí)現(xiàn)HTTP請求 248
12.5.5 Cookie 251
12.5.6 使用requests庫簡單獲取網(wǎng)頁內(nèi)容 252
習(xí)題12 252
第 13章 網(wǎng)絡(luò)爬蟲 253
13.1 網(wǎng)絡(luò)爬蟲概述 254
13.1.1 網(wǎng)頁的概念 254
13.1.2 網(wǎng)絡(luò)爬蟲工作流程 254
13.2 通過Beautiful Soup庫提取網(wǎng)頁信息 254
13.2.1 Beautiful Soup庫的安裝 255
13.2.2 Beautiful Soup庫的導(dǎo)入 255
13.2.3 BeautifulSoup類的基本元素 255
13.2.4 HTML內(nèi)容搜索 257
13.3 使用urllib庫開發(fā)簡單的爬蟲 259
13.3.1 發(fā)送不帶參數(shù)的GET請求 260
13.3.2 模擬瀏覽器發(fā)送帶參數(shù)的GET請求 260
13.3.3 URL解析 261
13.4 抓取京東網(wǎng)站上小米手機(jī)的評論 262
13.4.1 京東網(wǎng)站頁面分析 262
13.4.2 編寫京東網(wǎng)站上小米手機(jī)評論爬蟲代碼 265
習(xí)題13 267
參考文獻(xiàn) 268