內容簡介
本書內容安排遵循學生的認知規律,結合Python的特點,將教學內容分為Python基礎及數據分析兩大部分。全樂挨祝書分為11章,前6章講解了Python基本語法和基本套用,後5章系統地講解了用Python爬取數據、處理數據、分析數據的方法與過程。每章除了豐富的實例外,還設計了來源於實踐的項目訓練及拓展訓練項目,引導讀者學以致用。
本書可以作為高校計算機類專業和相關專業的教材,也可作為Python愛好者的自學用書。
圖書目錄
第 1章
Python環境搭建 1
1.1 Python版本概述及下載Python安裝檔案 1
1.1.1 Python版本概述 1
1.1.2 下載Python安裝檔案 2
1.2 安裝Python 5
1.2.1 解壓下載的檔案 5
1.2.2 運行Python安裝檔案 5
1.3 Python互動模式 6
1.4 iPython 3和PyCharm概述 7
1.4.1 iPython 3概述 7
1.4.2 PyCharm概述 9
1.5 項目訓練:Python的安裝與使用 13
1.6 本章小結 15
1.7 練習 15
1.8 拓展訓練項目 16
第 2章
Python編程基礎 17
2.1 變數 17
2.2 數值 19
2.2.1 整型 19
2.2.2 浮點型 19
2.2.3 複數型 20
2.2.4 布爾型 20
2.3 字元串 21
2.3.1 轉義字元 21
2.3.2 字元串運算 21
2.3.3 字元串操作方法 22
2.4 列表 23
2.4.1 列表的創建與刪除 23
2.4.2 列表操作方法 24
2.4.3 列表切片操作 25
2.5 元組 27
2.6 字典 28
2.6.1 字典的創建與訪問 28
2.6.2 字典元素的修改 28
2.6.3 字典操作方法 29
2.7 運算符 30
2.7.2 位運算符 31
2.7.6 其他運算符 33
2.8 Python代碼編寫規範 34
2.9 控制流 35
2.9.1 順序結構程式 35
2.9.2 分支結構程式 40
2.9.3 循環結構程式 45
2.10 項目訓練:個人所得稅計算 53
2.11 本章小結 56
2.12 練習 56
2.13 拓展訓練項目 58
2.13.1 Python
數值型變數的定義與賦值 58
2.13.2 Python控制流和運算符 59
2.13.3 列表的基本操作 59
2.13.4 元組的基本操作 59
2.13.5 字典的基本操作 59
2.13.6 字元串的基本操作 60
第3章
函式 61
3.1 自定義函式 61
3.1.1 函式定義格式 61
3.1.2 函式的設計 62
3.2 函式調用 想埋巴63
3.3 函式參數 64
3.3.1 位置參數 64
3.3.2 默認參數 64
3.3.3 關鍵參數 65
3.3.4 可變長度參數 66
3.4 變數作用域 達慨微洪68
3.4.1 局部變數 68
3.4.2 全局變數 69
3.5 異常 70
3.5.1 Python標準異常類 70
3.5.2 異常處理 71
3.6 項目訓練:哥德巴赫狂想——任何大於2的偶數總可以分解成兩個素數的和 75
3.7 本章小結 76
3.8 練習 77
3.9 拓展訓練項目 78
3.9.1 用函式實現乘法口訣 78
3.9.2 Python函式參數 78
3.9.3 Python局部變數和全局變諒諒量 78
3.9.4 Python異常捕獲與處宙婚項理 78
第4章
面向對象編程基礎 79
4.1 類和對象 79
4.1.1 類 79
4.1.2 對象 80
4.2 屬性與方法 80
4.2.1 屬性 80
4.2.2 方法 83
4.3 繼承 84
4.4 多態 86
4.5 項目訓練:簡單學生成績管理系統 88
4.6 本章小結 91
4.7 練習 台乎贈頌92
4.8 拓展訓練項目 93
4.8.1 Python類與對象 93
4.8.2 類方法、實例方法和靜態方法 93
4.8.3 類繼承、組合 94
4.8.4 類的多重繼承 94
第5章
模組 95
5.1 模組的創建和命名空間 95
5.1.1 模組的創建 95
5.1.2 命名空間 96
5.2 模組的導入和路徑 97
5.2.1 模組的導入 97
5.2.2 模組的路徑 98
5.3 包 100
5.4 Python內她榜踏置模組 100
5.4.1 math模組 100
5.4.2 random模組 101
5.4.3 time模組 101
5.4.4 datetime模組 103
5.4.5 calendar模組 104
5.4.6 sys模組 105
5.4.7 zipfile模組 106
5.5 項目訓練:日曆 108
5.6 本章小結 110
5.7 練習 111
5.8 拓展訓練項目 111
5.8.1 Python模組導入 111
5.8.2 zipfile模組的使用 112
5.8.3 Python模組的屬性 112
5.8.4 Python模組內置函式 112
第6章
Python檔案和資料庫 113
6.1 檔案的基本操作 113
6.1.1 內置函式open() 113
6.1.2 檔案對象常用的屬性和方法 114
6.1.3 檔案操作案例 116
6.2 檔案系統的基本操作 119
6.3.1 MySQL簡介 121
6.3.2 安裝MySQL 122
6.3.3 使用Python連線MySQL資料庫 126
6.3.4 MySQL的基本操作 127
6.4 項目訓練:使用Python完成課程表和學生信息表的創建 128
6.5 本章小結 131
6.6 練習 132
6.7 拓展訓練項目 133
6.7.1 安裝MySQL資料庫和Python連線資料庫 133
6.7.2 使用Python實現MySQL增查改刪 133
6.7.3 Python檔案的基本操作 133
6.7.4 Python檔案的基本操作 134
第7章
Python爬蟲基礎 135
7.1 網路爬蟲概述及其結構 135
7.1.1 網路爬蟲概述 135
7.1.2 網路爬蟲結構 136
7.2 urllib庫 137
7.2.1 urllib.request模組 137
7.2.2 urllib.parse模組 138
7.2.3 urllib.error模組 140
7.3 使用urllib爬取網頁 141
7.4 瀏覽器的模擬與實戰 142
7.5 正則表達式 143
7.6 圖片爬蟲實戰 147
7.7 項目訓練:用urllib庫爬取
百度貼吧 148
7.8 本章小結 152
7.9 練習 152
7.10 拓展訓練項目 153
7.10.1 urllib庫的使用 153
7.10.2 百度貼吧網頁爬蟲 153
7.10.3 淘寶網站圖片爬蟲 153
第8章
Python爬蟲框架 154
8.1 常見爬蟲框架 154
8.2 Scrapy爬蟲框架的安裝 155
8.3 Scrapy爬蟲框架簡介 156
8.4 Scrapy常用工具命令 157
8.4.1 創建一個Scrapy項目 157
8.4.2 Scrapy全局命令 158
8.4.3 Scrapy項目命令 160
8.5 Scrapy爬蟲實戰 161
8.6 項目訓練:用Scrapy爬取豆瓣圖書 167
8.7 本章小結 171
8.8 練習 171
8.9 拓展訓練項目 171
8.9.1 Scrapy框架的安裝及使用 171
8.9.2 Scrapy命令行工具 172
第9章
數據分析基礎 173
9.1 numpy模組 173
9.1.1 ndarray類型數組 174
9.1.2 matrix類型矩陣 182
9.1.3 matrix類型和array類型的區別 189
9.2 pandas模組 193
9.2.1 pandas模組基礎 193
9.2.2 pandas模組數據清洗 199
9.2.3 pandas模組數據預處理 221
9.2.4 pandas模組數據提取 230
9.2.5 pandas模組數據篩選 234
9.2.6 pandas模組數據匯總 235
9.2.7 pandas模組數據統計 237
9.2.8 pandas模組綜合套用示例 239
9.3 項目訓練:清洗和預處理8.6節中爬取的doubanread. csv檔案 245
9.4 本章小結 247
9.5 練習 247
9.6 拓展訓練項目 249
9.6.1 pandas基本功能實驗 249
9.6.2 pandas匯總和計算實驗 249
9.6.3 pandas缺失數據處理 249
9.6.4 pandas構建層次化索引 249
第 10章
pandas數據分析 251
10.1 pandas檔案讀寫基礎 251
10.1.1 CSV檔案的讀寫 251
10.1.2 Excel檔案的讀寫 254
10.2 pandas與MySQL資料庫的互動 256
10.2.1 pandas與MySQL連線的步驟 256
10.2.2 pandas與MySQL互動 257
10.3 pandas字元串處理 259
10.4 pandas數據分組與聚合 265
10.4.1 使用內置的聚合函式進行聚合運算 265
10.4.2 分組與聚合過程 267
10.4.3 agg()和apply()聚合函式 268
10.5 項目訓練:電影數據統計 271
10.6 本章小結 274
10.7 練習 274
10.8 拓展訓練項目 274
10.8.1 pandas檔案讀寫 274
10.8.2 pandas資料庫讀寫 275
10.8.3 pandas數據處理 275
10.8.4 pandas數據聚合和組疊代 275
第 11章
Python可視化與可視化工具 276
11.1 Python可視化與可視化工具介紹 276
11.2 pandas基本圖形繪製 278
11.2.1 折線圖 278
11.2.2 柱狀圖 282
11.2.3 直方圖 285
11.2.4 散點圖 285
11.2.5 面積圖 287
11.2.6 餅圖 287
11.2.7 密度圖 290
11.3 matplotlib繪圖 291
11.3.1 matplotlib繪圖基礎 291
11.3.2 matplotlib互動繪圖 291
11.4 matplotlib.pyplot的使用 294
11.4.1 pyplot繪圖基礎 294
11.4.2 多種類型圖的繪製 297
11.5 項目訓練:電影數據信息分析 306
11.6 本章小結 310
11.7 練習 310
11.8 拓展訓練項目 310
11.8.1 pandas繪圖 310
11.8.2 matplotlib互動式繪圖實踐 310
11.8.3 pyplot繪圖元素的設定 311
11.8.4 子圖的繪製 311
附錄 312
參考文獻 316
2.13.2 Python控制流和運算符 59
2.13.3 列表的基本操作 59
2.13.4 元組的基本操作 59
2.13.5 字典的基本操作 59
2.13.6 字元串的基本操作 60
第3章
函式 61
3.1 自定義函式 61
3.1.1 函式定義格式 61
3.1.2 函式的設計 62
3.2 函式調用 63
3.3 函式參數 64
3.3.1 位置參數 64
3.3.2 默認參數 64
3.3.3 關鍵參數 65
3.3.4 可變長度參數 66
3.4 變數作用域 68
3.4.1 局部變數 68
3.4.2 全局變數 69
3.5 異常 70
3.5.1 Python標準異常類 70
3.5.2 異常處理 71
3.6 項目訓練:哥德巴赫狂想——任何大於2的偶數總可以分解成兩個素數的和 75
3.7 本章小結 76
3.8 練習 77
3.9 拓展訓練項目 78
3.9.1 用函式實現乘法口訣 78
3.9.2 Python函式參數 78
3.9.3 Python局部變數和全局變數 78
3.9.4 Python異常捕獲與處理 78
第4章
面向對象編程基礎 79
4.1 類和對象 79
4.1.1 類 79
4.1.2 對象 80
4.2 屬性與方法 80
4.2.1 屬性 80
4.2.2 方法 83
4.3 繼承 84
4.4 多態 86
4.5 項目訓練:簡單學生成績管理系統 88
4.6 本章小結 91
4.7 練習 92
4.8 拓展訓練項目 93
4.8.1 Python類與對象 93
4.8.2 類方法、實例方法和靜態方法 93
4.8.3 類繼承、組合 94
4.8.4 類的多重繼承 94
第5章
模組 95
5.1 模組的創建和命名空間 95
5.1.1 模組的創建 95
5.1.2 命名空間 96
5.2 模組的導入和路徑 97
5.2.1 模組的導入 97
5.2.2 模組的路徑 98
5.3 包 100
5.4 Python內置模組 100
5.4.1 math模組 100
5.4.2 random模組 101
5.4.3 time模組 101
5.4.4 datetime模組 103
5.4.5 calendar模組 104
5.4.6 sys模組 105
5.4.7 zipfile模組 106
5.5 項目訓練:日曆 108
5.6 本章小結 110
5.7 練習 111
5.8 拓展訓練項目 111
5.8.1 Python模組導入 111
5.8.2 zipfile模組的使用 112
5.8.3 Python模組的屬性 112
5.8.4 Python模組內置函式 112
第6章
Python檔案和資料庫 113
6.1 檔案的基本操作 113
6.1.1 內置函式open() 113
6.1.2 檔案對象常用的屬性和方法 114
6.1.3 檔案操作案例 116
6.2 檔案系統的基本操作 119
6.3.1 MySQL簡介 121
6.3.2 安裝MySQL 122
6.3.3 使用Python連線MySQL資料庫 126
6.3.4 MySQL的基本操作 127
6.4 項目訓練:使用Python完成課程表和學生信息表的創建 128
6.5 本章小結 131
6.6 練習 132
6.7 拓展訓練項目 133
6.7.1 安裝MySQL資料庫和Python連線資料庫 133
6.7.2 使用Python實現MySQL增查改刪 133
6.7.3 Python檔案的基本操作 133
6.7.4 Python檔案的基本操作 134
第7章
Python爬蟲基礎 135
7.1 網路爬蟲概述及其結構 135
7.1.1 網路爬蟲概述 135
7.1.2 網路爬蟲結構 136
7.2 urllib庫 137
7.2.1 urllib.request模組 137
7.2.2 urllib.parse模組 138
7.2.3 urllib.error模組 140
7.3 使用urllib爬取網頁 141
7.4 瀏覽器的模擬與實戰 142
7.5 正則表達式 143
7.6 圖片爬蟲實戰 147
7.7 項目訓練:用urllib庫爬取
百度貼吧 148
7.8 本章小結 152
7.9 練習 152
7.10 拓展訓練項目 153
7.10.1 urllib庫的使用 153
7.10.2 百度貼吧網頁爬蟲 153
7.10.3 淘寶網站圖片爬蟲 153
第8章
Python爬蟲框架 154
8.1 常見爬蟲框架 154
8.2 Scrapy爬蟲框架的安裝 155
8.3 Scrapy爬蟲框架簡介 156
8.4 Scrapy常用工具命令 157
8.4.1 創建一個Scrapy項目 157
8.4.2 Scrapy全局命令 158
8.4.3 Scrapy項目命令 160
8.5 Scrapy爬蟲實戰 161
8.6 項目訓練:用Scrapy爬取豆瓣圖書 167
8.7 本章小結 171
8.8 練習 171
8.9 拓展訓練項目 171
8.9.1 Scrapy框架的安裝及使用 171
8.9.2 Scrapy命令行工具 172
第9章
數據分析基礎 173
9.1 numpy模組 173
9.1.1 ndarray類型數組 174
9.1.2 matrix類型矩陣 182
9.1.3 matrix類型和array類型的區別 189
9.2 pandas模組 193
9.2.1 pandas模組基礎 193
9.2.2 pandas模組數據清洗 199
9.2.3 pandas模組數據預處理 221
9.2.4 pandas模組數據提取 230
9.2.5 pandas模組數據篩選 234
9.2.6 pandas模組數據匯總 235
9.2.7 pandas模組數據統計 237
9.2.8 pandas模組綜合套用示例 239
9.3 項目訓練:清洗和預處理8.6節中爬取的doubanread. csv檔案 245
9.4 本章小結 247
9.5 練習 247
9.6 拓展訓練項目 249
9.6.1 pandas基本功能實驗 249
9.6.2 pandas匯總和計算實驗 249
9.6.3 pandas缺失數據處理 249
9.6.4 pandas構建層次化索引 249
第 10章
pandas數據分析 251
10.1 pandas檔案讀寫基礎 251
10.1.1 CSV檔案的讀寫 251
10.1.2 Excel檔案的讀寫 254
10.2 pandas與MySQL資料庫的互動 256
10.2.1 pandas與MySQL連線的步驟 256
10.2.2 pandas與MySQL互動 257
10.3 pandas字元串處理 259
10.4 pandas數據分組與聚合 265
10.4.1 使用內置的聚合函式進行聚合運算 265
10.4.2 分組與聚合過程 267
10.4.3 agg()和apply()聚合函式 268
10.5 項目訓練:電影數據統計 271
10.6 本章小結 274
10.7 練習 274
10.8 拓展訓練項目 274
10.8.1 pandas檔案讀寫 274
10.8.2 pandas資料庫讀寫 275
10.8.3 pandas數據處理 275
10.8.4 pandas數據聚合和組疊代 275
第 11章
Python可視化與可視化工具 276
11.1 Python可視化與可視化工具介紹 276
11.2 pandas基本圖形繪製 278
11.2.1 折線圖 278
11.2.2 柱狀圖 282
11.2.3 直方圖 285
11.2.4 散點圖 285
11.2.5 面積圖 287
11.2.6 餅圖 287
11.2.7 密度圖 290
11.3 matplotlib繪圖 291
11.3.1 matplotlib繪圖基礎 291
11.3.2 matplotlib互動繪圖 291
11.4 matplotlib.pyplot的使用 294
11.4.1 pyplot繪圖基礎 294
11.4.2 多種類型圖的繪製 297
11.5 項目訓練:電影數據信息分析 306
11.6 本章小結 310
11.7 練習 310
11.8 拓展訓練項目 310
11.8.1 pandas繪圖 310
11.8.2 matplotlib互動式繪圖實踐 310
11.8.3 pyplot繪圖元素的設定 311
11.8.4 子圖的繪製 311
附錄 312
參考文獻 316