本書以Python 3為基礎(chǔ),循序漸進(jìn)地講解了Python從入門到進(jìn)階的知識。全書共15章。首先從Python的起源及功能特點(diǎn)開始講述,介紹Python 3的安裝、配置,并詳細(xì)講解Python的基礎(chǔ)知識,包括變量和運(yùn)算符的使用、三大控制結(jié)構(gòu)、標(biāo)準(zhǔn)數(shù)據(jù)類型、函數(shù)、文件輸入和輸出、面向?qū)ο缶幊毯彤惓L幚淼认嚓P(guān)知識;然后講解Python的高級知識,包括OS和SYS模塊的使用、正則表達(dá)式、多線程與多進(jìn)程編程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫編程、NumPy模塊和Pandas模塊等相關(guān)知識。
本書可以作為普通高等院校計(jì)算機(jī)、大數(shù)據(jù)、人工智能等專業(yè)Python相關(guān)課程的教材,也可作為Python愛好者的入門教程或自學(xué)參考用書。
1.面向普通本科學(xué)生群體的就業(yè)場景,以實(shí)用為目的
2.使用Python 3.7作為教學(xué)使用的版本
3.在內(nèi)容編排上,參考了Python官方教程,在保證具有一定技術(shù)深度的同時,又具有較強(qiáng)的可讀性
4.盡量完整地介紹Python的基礎(chǔ)知識及高級應(yīng)用
安俊秀,2004年畢業(yè)于西安交通大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),獲工學(xué)碩士學(xué)位。中國計(jì)算機(jī)學(xué)會高級會員;中國電子學(xué)會高級會員;成都市科技攻關(guān)計(jì)劃評審專家;成都軍區(qū)項(xiàng)目評審專家;汕尾市科技顧問團(tuán)首席顧問。
1993年進(jìn)入山西大學(xué)商務(wù)學(xué)院任教,2006年底調(diào)入成都信息工程大學(xué)任教。最近三年,先后承擔(dān)了《Linux體系和編程》、《軟件項(xiàng)目管理》、《工程導(dǎo)論》、《計(jì)算機(jī)組成原理》等本科課程;承擔(dān)了《云計(jì)算與大數(shù)據(jù)》、《并行計(jì)算》、《Hadoop處理技術(shù)》等研究生課程。在科研工作方面,一直從事云計(jì)算與大數(shù)據(jù)、信息智能搜索與計(jì)算社會方面的研究工作。近三年發(fā)表論文20余篇,其中第一作者10余篇,核心期刊以上占5篇。獨(dú)立完成專著1部,編著教材1部和參與編著教材1部,主編教材1部。獲得國家發(fā)明專利2項(xiàng)(2014授權(quán)),實(shí)用新型專利授權(quán)12項(xiàng)。獲得軟件著作權(quán)13項(xiàng)?蒲许(xiàng)目10項(xiàng),其中作為項(xiàng)目負(fù)責(zé)人承擔(dān)國家自然基金面上項(xiàng)目1項(xiàng)(71673032);作為項(xiàng)目負(fù)責(zé)人承擔(dān)四川省省級以上項(xiàng)目3項(xiàng)(SC14B016、15ZA0195、WLWH13-01);作為第一主研參與國家社會科學(xué)項(xiàng)目2項(xiàng)(15BSH025、12XSH019);作為第一主研參與教育部人文社會科學(xué)研究項(xiàng)目1項(xiàng)(12YJA190009)。2015年獲四川省社科高水平研究團(tuán)隊(duì)稱號。
第1章 Python簡介 1
1.1 Python概述 1
1.1.1 什么是Python 1
1.1.2 Python的特點(diǎn) 2
1.2 Python的安裝 3
1.2.1 Python在Windows操作系統(tǒng)中的
安裝 3
1.2.2 Python在Linux操作系統(tǒng)中的
安裝 6
1.2.3 Python在macOS中的安裝 9
1.3 編寫第一個Python程序 10
1.3.1 hello world 10
1.3.2 Python解釋器 12
1.3.3 注釋的使用 13
習(xí)題 13
第2章 Python基礎(chǔ) 15
2.1 Python中的變量 15
2.1.1 數(shù)字 15
2.1.2 字符串 18
2.1.3 類型轉(zhuǎn)換 19
2.1.4 變量 20
2.1.5 常量 22
2.1.6 變量的命名規(guī)則 22
2.2 Python中的運(yùn)算符 23
2.3 Python中的字符串和編碼 27
2.3.1 字符串的定義和使用 27
2.3.2 字符串編碼 31
2.3.3 格式化字符串 32
2.4 Python編輯器 32
習(xí)題 35
第3章 Python流程控制 37
3.1 縮進(jìn)的使用 37
3.2 標(biāo)準(zhǔn)輸入/輸出 38
3.2.1 標(biāo)準(zhǔn)輸入 39
3.2.2 標(biāo)準(zhǔn)輸出 39
3.3 輸出字符串 40
3.4 if判斷語句 41
3.4.1 if語句 41
3.4.2 if-else語句 42
3.4.3 if-elif-else語句 43
3.4.4 if語句條件表達(dá)式 45
3.5 while循環(huán) 46
3.6 for循環(huán) 48
3.7 break和continue語句的使用 51
3.7.1 break語句 51
3.7.2 continue語句 52
習(xí)題 53
第4章 列表、元組、字典和集合 55
4.1 列表 55
4.1.1 創(chuàng)建和使用列表 55
4.1.2 列表進(jìn)階 59
4.1.3 列表解析 63
4.2 元組 65
4.2.1 創(chuàng)建和使用元組 65
4.2.2 元組進(jìn)階 69
4.3 字典 70
4.3.1 創(chuàng)建和使用字典 70
4.3.2 字典進(jìn)階 72
4.4 集合 76
4.4.1 創(chuàng)建和使用集合 76
4.4.2 集合進(jìn)階 78
習(xí)題 79
第5章 函數(shù)與模塊 81
5.1 定義和調(diào)用函數(shù) 81
5.2 內(nèi)置函數(shù) 83
5.2.1 數(shù)學(xué)計(jì)算函數(shù) 83
5.2.2 類型轉(zhuǎn)換函數(shù) 83
5.2.3 數(shù)據(jù)處理函數(shù) 84
5.3 函數(shù)參數(shù) 84
5.3.1 普通參數(shù) 84
5.3.2 缺省參數(shù) 86
5.3.3 關(guān)鍵字參數(shù) 87
5.3.4 不定長參數(shù) 88
5.3.5 函數(shù)返回值 88
5.4 高階函數(shù) 91
5.4.1 filter()函數(shù) 91
5.4.2 map()函數(shù) 92
5.4.3 reduce()函數(shù) 92
5.4.4 lambda表達(dá)式 93
5.5 作用域 94
5.5.1 局部變量 94
5.5.2 全局變量 95
5.6 模塊 96
5.6.1 內(nèi)置模塊 96
5.6.2 自定義模塊 97
5.6.3 安裝第三方模塊 99
習(xí)題 99
第6章 文件I/O 101
6.1 文件路徑 101
6.1.1 絕對路徑 101
6.1.2 相對路徑 102
6.2 文件打開和關(guān)閉 103
6.2.1 open()函數(shù) 103
6.2.2 with open 104
6.3 讀文件 105
6.3.1 read()函數(shù) 105
6.3.2 readline()函數(shù) 106
6.3.3 readlines()函數(shù) 107
6.3.4 大文件讀取 107
6.3.5 文件指針 108
6.4 寫文件 109
6.4.1 覆蓋寫 109
6.4.2 追加寫 110
習(xí)題 110
第7章 面向?qū)ο缶幊?112
7.1 什么是類與對象 112
7.2 使用類與對象 113
7.2.1 類方法 113
7.2.2 類變量 114
7.2.3 類的實(shí)例——對象 114
7.2.4 實(shí)例變量 114
7.2.5 再談self參數(shù) 117
7.3 私有變量 117
7.4 繼承 120
7.4.1 屬性繼承 120
7.4.2 方法重寫 121
7.4.3 多態(tài) 123
習(xí)題 125
第8章 錯誤和異常 127
8.1 區(qū)分錯誤和異常 127
8.2 處理異常 129
8.2.1 try-except語句 130
8.2.2 未發(fā)生異!猠lse子句 131
8.2.3 巧用finally清理子句 131
8.2.4 處理多種異常 132
8.3 拋出異常 136
8.4 自定義異常 138
習(xí)題 140
第9章 os、sys模塊及應(yīng)用 141
9.1 os模塊 141
9.1.1 文件操作 141
9.1.2 目錄操作 154
9.1.3 跨平臺問題 158
9.2 sys模塊 160
9.3 實(shí)例 165
9.3.1 文件/目錄信息查看 165
9.3.2 文件/目錄管理器 167
習(xí)題 171
第10章 正則表達(dá)式 172
10.1 正則表達(dá)式簡介 172
10.2 定義和使用正則表達(dá)式 174
10.2.1 定義正則表達(dá)式 174
10.2.2 匹配字符串 176
10.2.3 替換字符串 183
10.3 實(shí)例 186
10.3.1 校驗(yàn)電話號碼 186
10.3.2 校驗(yàn)郵箱 187
10.3.3 校驗(yàn)IP地址 187
10.3.4 提取超鏈接 188
10.3.5 提取中文字符 189
習(xí)題 189
第11章 多線程及多進(jìn)程編程 190
11.1 多線程簡介 190
11.2 Python多線程編程 191
11.2.1 _thread模塊 191
11.2.2 threading模塊 194
11.3 線程同步 197
11.4 queue模塊 201
11.4.1 FIFO隊(duì)列Queue 202
11.4.2 LIFO隊(duì)列LifoQueue 203
11.4.3 優(yōu)先級隊(duì)列PriorityQueue 204
11.5 Python多進(jìn)程編程 205
11.5.1 os.fork()函數(shù) 205
11.5.2 multiprocessing模塊 206
11.5.3 進(jìn)程池 208
11.5.4 進(jìn)程通信 209
11.6 實(shí)例 212
11.6.1 模擬售票程序 213
11.6.2 生產(chǎn)者-消費(fèi)者模式模擬程序 214
11.6.3 多線程和多進(jìn)程綜合應(yīng)用程序 216
習(xí)題 217
第12章 網(wǎng)絡(luò)編程 218
12.1 網(wǎng)絡(luò)編程簡介 218
12.1.1 網(wǎng)絡(luò)協(xié)議 218
12.1.2 C/S架構(gòu)和B/S架構(gòu)簡介 219
12.2 Socket編程 220
12.2.1 TCP簡介 221
12.2.2 UDP簡介 223
12.3 requests模塊 224
12.3.1 發(fā)送請求 225
12.3.2 上傳文件 227
12.3.3 常用反爬機(jī)制及解決辦法 228
12.4 實(shí)例 229
12.4.1 使用TCP實(shí)現(xiàn)偽機(jī)器人聊天
程序 229
12.4.2 使用requests模塊爬取小說 231
習(xí)題 233
第13章 數(shù)據(jù)庫編程 235
13.1 數(shù)據(jù)庫簡介 235
13.1.1 關(guān)系型數(shù)據(jù)庫 235
13.1.2 非關(guān)系型數(shù)據(jù)庫 239
13.2 MySQL常用操作 240
13.2.1 連接數(shù)據(jù)庫 240
13.2.2 創(chuàng)建和管理數(shù)據(jù)庫 241
13.2.3 創(chuàng)建和管理表 242
13.3 SQLite 3常用操作 249
13.3.1 連接數(shù)據(jù)庫 250
13.3.2 創(chuàng)建和管理表 250
13.4 MongoDB常用操作 256
13.4.1 連接數(shù)據(jù)庫 256
13.4.2 集合與文檔 256
13.5 實(shí)例 263
13.5.1 使用MySQL實(shí)現(xiàn)模擬銀行
ATM機(jī) 263
13.5.2 使用SQLite 3實(shí)現(xiàn)學(xué)生信息管理
系統(tǒng) 268
13.5.3 使用MongoDB+Socket+圖靈機(jī)器人
API實(shí)現(xiàn)人機(jī)聊天系統(tǒng) 273
習(xí)題 276
第14章 NumPy模塊 278
14.1 NumPy簡介及安裝 278
14.2 NumPy中的數(shù)組對象 279
14.2.1 數(shù)組對象的創(chuàng)建 279
14.2.2 數(shù)組對象的常用屬性 284
14.2.3 數(shù)組元素的訪問與修改 285
14.2.4 數(shù)組的基礎(chǔ)運(yùn)算 289
14.2.5 數(shù)組的基本操作 291
14.3 數(shù)學(xué)運(yùn)算 295
14.3.1 常用數(shù)學(xué)函數(shù) 295
14.3.2 統(tǒng)計(jì)運(yùn)算 295
14.3.3 基本線性代數(shù)運(yùn)算 298
14.4 實(shí)例 299
14.4.1 圖像的常用操作 300
14.4.2 圖像二值化 301
習(xí)題 304
第15章 pandas模塊 305
15.1 pandas簡介及安裝 305
15.2 Series和DataFrame 306
15.2.1 創(chuàng)建Series對象 306
15.2.2 訪問與修改Series中的元素 307
15.2.3 創(chuàng)建DataFrame對象 308
15.2.4 DataFrame中的增、刪、
選、改 310
15.3 數(shù)據(jù)處理 316
15.3.1 缺失值處理 316
15.3.2 索引的重置 317
15.3.3 多層索引 318
15.3.4 排序 320
15.3.5 文件讀/寫 321
15.3.6 數(shù)據(jù)透視 322
習(xí)題 323
參考文獻(xiàn) 324