本書詳細介紹了獲得Python基礎編程能力所需要掌握的各方面技術,內(nèi)容覆蓋全國計算機等級考試二級Python考試大綱的內(nèi)容。全書共15章,內(nèi)容包括Python語言概述、基礎語法知識、程序控制結(jié)構、序列、字符串、函數(shù)、面向?qū)ο蟪绦蛟O計、模塊、異常處理、基于文件的持久化、基于數(shù)據(jù)庫的持久化、圖形用戶界面編程、正則表達式、網(wǎng)絡爬蟲、常用的標準庫和第三方庫等。本書每章都安排了入門級的編程實踐操作,以便讀者更好地學習和掌握Python編程方法。 本書官網(wǎng)免費提供了全套的在線教學資源,包括講義PPT、習題、源代碼、軟件、數(shù)據(jù)集、上機實驗指南等。
1.作者影響力大:林子雨是大數(shù)據(jù)領域有廣泛影響的作者,Python的大數(shù)據(jù)領域應用較廣,很多采用林子雨大數(shù)據(jù)基礎的老師呼吁林子雨出版一本Python基礎教材;
2.內(nèi)容覆蓋Python二級等考;
3.配套資源多:微課視頻、PPT、習題答案、源代碼、數(shù)據(jù)集、上機實驗指南與二級等考習題解析;
林子雨(1978-),男,博士,國內(nèi)高校知名大數(shù)據(jù)教師,廈門大學計算機科學系副教授,廈門大學信息學院實驗教學中心主任,廈門大學數(shù)據(jù)庫實驗室負責人,中國計算機學會數(shù)據(jù)庫專委會委員,中國計算機學會信息系統(tǒng)專委會委員,中國高校首個數(shù)字教師提出者和建設者。2013年開始在廈門大學開設大數(shù)據(jù)課程,建設了國內(nèi)高校首個大數(shù)據(jù)課程公共服務平臺,平臺累計網(wǎng)絡訪問量超過1000萬次,成為全國高校大數(shù)據(jù)教學知名品牌,并榮獲2018年福建省教學成果二等獎和2018年廈門大學教學成果特等獎,主持的課程《大數(shù)據(jù)技術原理與應用》獲評2018年國家精品在線開放課程和2020年線上一流本科課程,主持的課程《Spark編程基礎》獲評2020年福建省線上一流本科課程。
第 1 章Python 語言概述
1.1 計算機語言............................................................................1
1.1.1 計算機語言的種類.....................................................1
1.1.2 編程語言的選擇.........................................................2
1.2 Python 簡介............................................................................3
1.2.1 什么是Python ............................................................3
1.2.2 Python 語言的特點....................................................3
1.2.3 Python 語言的應用....................................................5
1.2.4 Python 的版本............................................................6
1.3 搭建Python 開發(fā)環(huán)境...........................................................7
1.3.1 安裝Python ................................................................7
1.3.2 使用交互式執(zhí)行環(huán)境.................................................8
1.3.3 運行代碼文件.............................................................8
1.3.4 使用IDLE 編寫代碼..................................................8
1.3.5 第三方開發(fā)工具.......................................................10
1.4 Python 規(guī)范..........................................................................10
1.4.1 注釋規(guī)則...................................................................10
1.4.2 代碼縮進...................................................................12
1.5 本章小結(jié)..............................................................................12
1.6 習題......................................................................................12
第 2 章基礎語法知識
2.1 關鍵字和標識符..................................................................13
2.1.1 關鍵字.......................................................................13
2.1.2 標識符.......................................................................13
2.2 變量......................................................................................14
2.3 基本數(shù)據(jù)類型......................................................................16
2.3.1 數(shù)字.......................................................................... 16
2.3.2 字符串...................................................................... 16
2.3.3 數(shù)據(jù)類型轉(zhuǎn)換.......................................................... 17
2.4 基本輸入和輸出.................................................................. 18
2.4.1 使用input()函數(shù)輸入.............................................. 18
2.4.2 使用print()函數(shù)輸出............................................... 19
2.5 運算符和表達式.................................................................. 22
2.5.1 算術運算符和表達式.............................................. 22
2.5.2 賦值運算符和表達式.............................................. 22
2.5.3 比較運算符和表達式.............................................. 23
2.5.4 邏輯運算符和表達式.............................................. 23
2.5.5 運算符的優(yōu)先級與結(jié)合性...................................... 24
2.6 本章小結(jié)............................................................................. 24
2.7 習題..................................................................................... 25
第3 章程序控制結(jié)構
3.1 程序控制結(jié)構..................................................................... 26
3.2 選擇語句............................................................................. 27
3.2.1 if 語句....................................................................... 27
3.2.2 if else 語句............................................................ 27
3.2.3 if elif else 多分支語句....................................... 28
3.2.4 if 語句的嵌套........................................................... 29
3.3 循環(huán)語句............................................................................. 31
3.3.1 while 循環(huán)語句........................................................ 31
3.3.2 for 循環(huán)語句............................................................ 32
3.3.3 循環(huán)嵌套.................................................................. 33
3.4 跳轉(zhuǎn)語句............................................................................. 36
3.4.1 break 跳轉(zhuǎn)語句........................................................ 36
3.4.2 continue 跳轉(zhuǎn)語句................................................... 38
3.4.3 pass 語句.................................................................. 39
3.5 綜合實例............................................................................. 39
3.6 本章小結(jié)............................................................................. 42
3.7 習題..................................................................................... 43
第4 章序列
4.1 列表..................................................................................... 44
4.1.1 列表的創(chuàng)建與刪除.................................................. 44
4.1.2 訪問列表元素.......................................................... 45
4.1.3 添加、刪除、修改列表元素.................................. 46
4.1.4 對列表進行統(tǒng)計...................................................... 49
4.1.5 對列表進行排序.......................................................49
4.1.6 成員資格判斷...........................................................51
4.1.7 切片操作...................................................................51
4.1.8 列表推導式...............................................................53
4.1.9 二維列表...................................................................53
4.2 元組......................................................................................54
4.2.1 創(chuàng)建元組...................................................................54
4.2.2 訪問元組...................................................................55
4.2.3 修改元組...................................................................55
4.2.4 刪除元組...................................................................56
4.2.5 元組推導式...............................................................56
4.2.6 元組的常用內(nèi)置函數(shù)...............................................57
4.2.7 元組與列表的區(qū)別...................................................58
4.2.8 序列封包和序列解包...............................................58
4.3 字典......................................................................................59
4.3.1 字典的創(chuàng)建與刪除...................................................60
4.3.2 訪問字典...................................................................61
4.3.3 添加、修改和刪除字典元素...................................63
4.3.4 字典推導式...............................................................63
4.4 集合......................................................................................64
4.4.1 集合的創(chuàng)建與刪除...................................................64
4.4.2 集合元素的添加與刪除...........................................65
4.4.3 集合的并集、交集與差集操作...............................66
4.5 本章小結(jié)..............................................................................66
4.6 習題......................................................................................66
第5 章字符串
5.1 字符串的基本概念..............................................................68
5.2 字符串的索引和切片..........................................................70
5.2.1 字符串的索引...........................................................70
5.2.2 字符串的切片...........................................................71
5.3 字符串的拼接......................................................................73
5.4 特殊字符和字符轉(zhuǎn)義..........................................................75
5.5 原始字符串和格式化字符串..............................................77
5.5.1 原始字符串...............................................................77
5.5.2 格式化字符串...........................................................78
5.6 字符串的編碼......................................................................81
5.7 字符串的常用操作..............................................................85
5.8 本章小結(jié)..............................................................................86
5.9 習題......................................................................................86
第6 章函數(shù)
6.1 普通函數(shù)............................................................................. 88
6.1.1 基本定義及調(diào)用...................................................... 88
6.1.2 文檔字符串.............................................................. 90
6.1.3 函數(shù)標注.................................................................. 90
6.1.4 return 語句................................................................ 91
6.1.5 變量作用域.............................................................. 92
6.1.6 函數(shù)的遞歸調(diào)用...................................................... 93
6.2 匿名函數(shù)............................................................................. 95
6.3 參數(shù)傳遞............................................................................. 96
6.3.1 給函數(shù)傳遞不可變對象.......................................... 96
6.3.2 給函數(shù)傳遞可變對象.............................................. 97
6.3.3 關于參數(shù)傳遞的總結(jié).............................................. 97
6.4 參數(shù)類型............................................................................. 98
6.4.1 位置參數(shù).................................................................. 98
6.4.2 關鍵字參數(shù).............................................................. 98
6.4.3 默認參數(shù).................................................................. 99
6.4.4 不定長參數(shù)............................................................ 100
6.4.5 特殊形式................................................................ 101
6.4.6 參數(shù)傳遞的序列解包............................................ 101
6.5 本章小結(jié)........................................................................... 102
6.6 習題................................................................................... 103
第7 章面向?qū)ο蟪绦蛟O計
7.1 面向?qū)ο缶幊谈攀?........................................................... 104
7.1.1 對象與類................................................................ 104
7.1.2 繼承與多態(tài)............................................................ 105
7.2 Python 中的面向?qū)ο?...................................................... 105
7.2.1 對象........................................................................ 105
7.2.2 類............................................................................ 106
7.3 自定義類........................................................................... 107
7.3.1 類的定義與實例化................................................ 107
7.3.2 構造器.................................................................... 108
7.3.3 類屬性與實例屬性................................................ 109
7.4 成員的可見性................................................................... 111
7.4.1 公有成員與私有成員............................................ 111
7.4.2 保護型成員............................................................ 112
7.4.3 property 類.............................................................. 112
7.5 方法................................................................................... 114
7.5.1 類方法.....................................................................114
7.5.2 靜態(tài)方法.................................................................115
7.5.3 魔法方法.................................................................116
7.6 類的繼承............................................................................117
7.6.1 繼承.........................................................................117
7.6.2 多態(tài).........................................................................120
7.7 本章小結(jié)............................................................................121
7.8 習題....................................................................................122
第8 章模塊
8.1 創(chuàng)建和使用模塊................................................................125
8.1.1 創(chuàng)建模塊.................................................................125
8.1.2 使用import 語句導入模塊....................................125
8.1.3 使用from import 語句導入模塊........................126
8.2 模塊搜索路徑....................................................................127
8.3 包........................................................................................128
8.3.1 創(chuàng)建和使用包.........................................................129
8.3.2 作為主程序運行.....................................................129
8.4 Python 自帶的標準模塊....................................................131
8.5 使用pip 管理Python 擴展模塊........................................131
8.6 本章小結(jié)............................................................................132
8.7 習題....................................................................................132
第9 章異常處理
9.1 異常的概念........................................................................133
9.2 內(nèi)置異常類層次結(jié)構........................................................134
9.3 異常處理結(jié)構....................................................................135
9.3.1 try except.................................................................135
9.3.2 try except else…...................................................137
9.3.3 try except finally ..............................................138
9.3.4 try except else finally ....................................139
9.4 拋出異常............................................................................141
9.5 斷言....................................................................................141
9.6 用戶自定義異常................................................................142
9.7 定義清理操作....................................................................143
9.8 返回值的取值選擇............................................................145
9.9 本章小結(jié)............................................................................146
9.10 習題..................................................................................146
第 10 章基于文件的持久化
10.1 持久化前的準備工作...................................................... 147
10.2 數(shù)據(jù)序列化和反序列化.................................................. 148
10.2.1 使用JSON 對數(shù)據(jù)進行序列化和反序列化....... 148
10.2.2 使用pickle 對數(shù)據(jù)進行序列化和反序列化....... 149
10.2.3 兩種序列化方式的對比...................................... 150
10.3 基于Windows 操作系統(tǒng)的文件和路徑......................... 151
10.3.1 Windows 里的路徑...................................... 152
10.3.2 Windows 里的相對路徑...................................... 153
10.3.3 Windows 里的環(huán)境變量...................................... 153
10.4 Python 對目錄的操作..................................................... 154
10.4.1 獲取當前目錄...................................................... 154
10.4.2 轉(zhuǎn)移到指定目錄.................................................. 155
10.4.3 新建目錄.............................................................. 155
10.4.4 判斷目錄是否存在.............................................. 155
10.4.5 顯示目錄內(nèi)容...................................................... 155
10.4.6 判斷是目錄還是文件.......................................... 156
10.4.7 刪除目錄.............................................................. 156
10.5 Python 對文件的操作..................................................... 157
10.5.1 打開文件.............................................................. 157
10.5.2 關閉文件.............................................................. 159
10.5.3 復制文件.............................................................. 159
10.5.4 重命名文件.......................................................... 159
10.5.5 刪除文件.............................................................. 159
10.6 Python 對文件內(nèi)容的操作............................................. 160
10.6.1 dump()函數(shù)和read()函數(shù).................................... 160
10.6.2 write()函數(shù)、seek()函數(shù)和tell()函數(shù)................. 161
10.6.3 writelines()函數(shù)和readlines()函數(shù)...................... 162
10.7 本章小結(jié)......................................................................... 163
10.8 習題................................................................................. 163
第 11 章基于數(shù)據(jù)庫的持久化
11.1 關系數(shù)據(jù)庫...................................................................... 164
11.2 關系數(shù)據(jù)庫標準語言SQL ............................................. 165
11.2.1 SQL 簡介.............................................................. 165
11.2.2 常用的SQL 語句................................................. 166
11.3 MySQL 的安裝和使用.................................................... 168
11.3.1 安裝MySQL ........................................................ 168
11.3.2 MySQL 的使用方法............................................ 170
11.4 使用Python 操作MySQL 數(shù)據(jù)庫................................. 172
11.4.1 連接數(shù)據(jù)庫.......................................................... 172
11.4.2 創(chuàng)建表...................................................................173
11.4.3 插入數(shù)據(jù)...............................................................173
11.4.4 修改數(shù)據(jù)...............................................................174
11.4.5 查詢數(shù)據(jù)...............................................................174
11.4.6 刪除數(shù)據(jù)...............................................................175
11.5 本章小結(jié)..........................................................................175
11.6 習題..................................................................................175
第 12 章圖形用戶界面編程
12.1 圖形用戶界面編程概述..................................................177
12.1.1 從命令行界面到圖形用戶界面...........................177
12.1.2 圖形用戶界面程序的運行與開發(fā).......................178
12.1.3 Python 中的圖形界面編程..................................179
12.2 tkinter 概述.......................................................................179
12.2.1 類的層次結(jié)構.......................................................179
12.2.2 基本開發(fā)步驟.......................................................180
12.3 tkinter 常用控件的使用...................................................182
12.3.1 常用控件的基本屬性...........................................182
12.3.2 Label......................................................................184
12.3.3 Button....................................................................186
12.3.4 Entry......................................................................186
12.3.5 Checkbutton ..........................................................188
12.3.6 Radiobutton...........................................................189
12.3.7 Listbox ..................................................................190
12.3.8 Frame LabelFrame ................................................191
12.4 tkinter 中的布局管理.......................................................192
12.4.1 Pack 布局..............................................................192
12.4.2 Grid 布局..............................................................194
12.4.3 Place 布局.............................................................195
12.5 tkinter 中的事件處理.......................................................196
12.5.1 事件的表示...........................................................196
12.5.2 事件處理程序的綁定...........................................197
12.6 tkinter 的綜合應用案例...................................................198
12.7 本章小結(jié)..........................................................................200
12.8 習題..................................................................................200
第 13 章正則表達式
13.1 正則表達式概述..............................................................202
13.2 正則表達式的基本規(guī)則..................................................203
13.2.1 正則表達式中的字符串類型...............................203
13.2.2 模式字符串中的普通字符.................................. 203
13.2.3 模式字符串中的轉(zhuǎn)義字符.................................. 204
13.2.4 模式字符串的其他特殊字符.............................. 205
13.3 正則表達式的組.............................................................. 210
13.3.1 捕獲組.................................................................. 210
13.3.2 條件匹配.............................................................. 211
13.3.3 斷言組.................................................................. 212
13.4 正則表達式的函數(shù).......................................................... 215
13.4.1 正則表達式的使用方法...................................... 215
13.4.2 正則對象和匹配規(guī)則.......................................... 215
13.4.3 正則對象的常用成員函數(shù).................................. 216
13.4.4 正則表達式里的match 對象............................... 219
13.5 本章小結(jié)......................................................................... 220
13.6 習題................................................................................. 220
第 14 章網(wǎng)絡爬蟲
14.1 網(wǎng)絡爬蟲概述................................................................. 222
14.1.1 什么是網(wǎng)絡爬蟲.................................................. 222
14.1.2 網(wǎng)絡爬蟲的類型.................................................. 223
14.1.3 反爬機制.............................................................. 223
14.2 網(wǎng)頁基礎知識................................................................. 224
14.2.1 超文本和HTML.................................................. 224
14.2.2 HTTP .................................................................... 224
14.3 用Python 實現(xiàn)HTTP 請求............................................ 225
14.3.1 urllib 模塊............................................................ 225
14.3.2 urllib3 模塊.......................................................... 226
14.3.3 requests 模塊........................................................ 227
14.4 定制requests ................................................................. 227
14.4.1 傳遞URL 參數(shù).................................................... 227
14.4.2 定制請求頭.......................................................... 228
14.4.3 設置網(wǎng)絡超時...................................................... 229
14.5 解析網(wǎng)頁......................................................................... 229
14.5.1 BeautifulSoup 簡介.............................................. 229
14.5.2 BeautifulSoup 四大對象...................................... 231
14.5.3 遍歷文檔樹.......................................................... 232
14.5.4 搜索文檔樹.......................................................... 237
14.5.5 CSS 選擇器.......................................................... 239
14.6 綜合實例......................................................................... 241
14.6.1 采集網(wǎng)頁數(shù)據(jù)保存到文本文件.......................... 241
14.6.2 采集網(wǎng)頁數(shù)據(jù)保存到MySQL 數(shù)據(jù)庫............... 243
14.7 本章小結(jié)..........................................................................245
14.8 習題..................................................................................245
第 15 章常用的標準庫和第三方庫
15.1 turtle 庫.............................................................................246
15.1.1 turtle 庫的常用函數(shù).............................................246
15.1.2 繪圖實例...............................................................247
15.2 random 庫.........................................................................249
15.2.1 基本隨機數(shù)函數(shù)...................................................249
15.2.2 擴展隨機數(shù)函數(shù)...................................................250
15.3 time 庫..............................................................................251
15.3.1 時間獲取函數(shù).......................................................251
15.3.2 時間格式化函數(shù)...................................................252
15.3.3 程序計時函數(shù).......................................................253
15.4 PyInstaller 庫....................................................................254
15.5 jieba 庫.............................................................................255
15.5.1 jieba 庫簡介..........................................................255
15.5.2 jieba 庫的安裝和使用..........................................256
15.5.3 應用實例...............................................................256
15.6 wordcloud 庫....................................................................257
15.7 Matplotlib 庫....................................................................259
15.7.1 繪制折線圖...........................................................259
15.7.2 繪制條形圖...........................................................260
15.7.3 繪制直方圖...........................................................261
15.7.4 繪制餅圖...............................................................261
15.8 本章小結(jié)..........................................................................262
15.9 習題..................................................................................262
參考文獻.....................................................................................264