第1章 Python 3概述
1.1 Python簡(jiǎn)介 2
1.1.1 Python的前世今生 2
1.1.2 Python的應用場(chǎng)合 2
1.1.3 Python的特性 3
1.1.4 選擇Python的版本 4
1.1.5 如何學(xué)習Python 5
1.2 Python環(huán)境構建 5
1.2.1 在Windows系統中安裝Python 3 5
1.2.2 在Linux系統中安裝Python 3 8
1.2.3 在Mac OS系統中安裝Python 3 9
1.3 第一個(gè)程序 Hello World! 10
1.3.1 程序簡(jiǎn)析 11
1.3.2 print()函數 11
1.3.3 input()函數 12
1.3.4 注釋 12
1.3.5 IDLE使用簡(jiǎn)介 13
1.4 實(shí)驗 17
1.4.1 PyCharm的安裝 18
1.4.2 實(shí)例:節日賀卡 23
1.4.3 程序剖析 24
1.5 小結 25
習題 25
參考文獻 26
第2章 基 本 語(yǔ) 法
2.1 PEP8風(fēng)格指南 27
2.1.1 變量 27
2.1.2 函數和方法 28
2.1.3 屬性和類(lèi) 29
2.1.4 模塊和包 29
2.1.5 規定 29
2.2 變量與數據類(lèi)型 29
2.2.1 變量 30
2.2.2 變量命名規則 30
2.2.3 數據類(lèi)型 30
2.2.4 type() 函數 32
2.2.5 數據類(lèi)型的轉換 32
2.3 表達式 34
2.3.1 算術(shù)運算符 34
2.3.2 比較運算符 34
2.3.3 邏輯運算符 34
2.3.4 復合賦值運算符 35
2.3.5 運算符優(yōu)先級 35
2.4 實(shí)驗 36
2.4.1 用常量和變量 36
2.4.2 用運算符和表達式 37
2.4.3 type()函數的使用 37
2.4.4 help()函數的使用 38
2.5 小結 39
習題 39
參考文獻 39
第3章 流 程 控 制
3.1 條件語(yǔ)句 41
3.2 條件流程控制 42
3.2.1 單向條件(if...) 43
3.2.2 雙向條件語(yǔ)句(if...else) 43
3.2.3 多向條件語(yǔ)句(if...elif...else) 44
3.2.4 條件嵌套 45
3.3 循環(huán)流程控制 45
3.3.1 for 循環(huán) 46
3.3.2 for循環(huán)嵌套 47
3.3.3 break及continue語(yǔ)句 48
3.3.4 for...if...else循環(huán) 48
3.3.5 while循環(huán) 49
3.4 實(shí)驗 50
3.4.1 使用條件語(yǔ)句 50
3.4.2 使用for語(yǔ)句 51
3.4.3 使用while語(yǔ)句 52
3.4.4 使用break語(yǔ)句 52
3.4.5 使用continue語(yǔ)句 53
3.5 小結 54
習題 54
參考文獻 55
第4章 組合數據類(lèi)型
4.1 列表 56
4.1.1 創(chuàng )建列表 56
4.1.2 使用列表 57
4.1.3 刪除列表元素 58
4.1.4 列表的內置函數與其他方法 59
4.2 元組 60
4.2.1 創(chuàng )建元組 60
4.2.2 使用元組 61
4.2.3 刪除元組 62
4.2.4 元組的內置函數 62
4.3 字典 63
4.3.1 創(chuàng )建字典 63
4.3.2 使用字典 63
4.3.3 刪除元素和字典 64
4.3.4 字典的內置函數和方法 65
4.4 集合 66
4.4.1 創(chuàng )建集合 66
4.4.2 使用集合 67
4.4.3 刪除元素和集合 68
4.4.4 集合的方法 69
4.5 實(shí)驗 70
4.5.1 元組的使用 70
4.5.2 集合的使用 70
4.6 小結 71
習題 71
參考文獻 72
第5章 字符串與正則表達式
5.1 字符串基礎 73
5.1.1 字符串的基本操作 74
5.1.2 字符串格式化 77
5.1.3 字符串格式化符號 77
5.1.4 字符串格式化元組 78
5.2 字符串方法 78
5.3 正則表達式 83
5.3.1 認識正則表達式 83
5.3.2 re模塊 85
5.3.3 re.match()方法 85
5.3.4 re.search()方法 85
5.3.5 re.match()與re.search()的區別 86
5.4 實(shí)驗 86
5.4.1 使用字符串處理函數 86
5.4.2 正則表達式的使用 87
5.4.3 使用re模塊 87
5.5 小結 88
習題 88
參考文獻 89
第6章 函 數
6.1 函數的概述 90
6.1.1 函數的定義 90
6.1.2 全局變量 91
6.1.3 局部變量 93
6.2 函數的參數和返回值 93
6.2.1 參數傳遞的方式 94
6.2.2 位置參數和關(guān)鍵字參數 95
6.2.3 默認值參數 96
6.2.4 可變參數 96
6.2.5 函數的返回值 98
6.3 函數的調用 99
6.3.1 函數的調用方法 99
6.3.2 嵌套調用 99
6.3.3 使用閉包 100
6.3.4 遞歸調用 101
6.4 實(shí)驗 102
6.4.1 聲明和調用函數 102
6.4.2 在調試窗口中查看變量的值 102
6.4.3 使用函數參數和返回值 105
6.4.4 使用閉包和遞歸函數 107
6.4.5 使用Python的內置函數 108
6.5 小結 108
習題 109
參考文獻 109
第7章 模 塊
7.1 模塊的概述 110
7.1.1 模塊與程序 110
7.1.2 命名空間 111
7.1.3 模塊導入方法 112
7.1.4 自定義模塊和包 113
7.2 安裝第三方模塊 115
7.3 模塊應用實(shí)例 118
7.3.1 日期時(shí)間相關(guān):datetime模塊 118
7.3.2 讀寫(xiě)JSON數據:json模塊 122
7.3.3 系統相關(guān):sys模塊 124
7.3.4 數學(xué):math模塊 125
7.3.5 隨機數:random模塊 127
7.4 在Python中調用R語(yǔ)言 129
7.4.1 安裝rpy2模塊 129
7.4.2 安裝R語(yǔ)言工具 129
7.4.3 測試安裝 131
7.4.4 調用R示例 132
7.5 實(shí)驗 133
7.5.1 使用datetime模塊 133
7.5.2 使用sys模塊 134
7.5.3 使用與數學(xué)有關(guān)的模塊 135
7.5.4 自定義和使用模塊 135
7.6 小結 136
習題 136
參考文獻 137
第8章 類(lèi) 和 對 象
8.1 理解面向對象 138
8.1.1 面向對象編程的概念 138
8.1.2 面向對象術(shù)語(yǔ)簡(jiǎn)介 138
8.2 類(lèi)的定義與使用 139
8.2.1 類(lèi)的定義 139
8.2.2 類(lèi)的使用 140
8.2.3 類(lèi)的構造方法及專(zhuān)有方法 140
8.2.4 類(lèi)的訪(fǎng)問(wèn)權限 141
8.2.5 獲取對象信息 143
8.3 類(lèi)的特點(diǎn) 144
8.3.1 封裝 144
8.3.2 多態(tài) 144
8.3.3 繼承 145
8.3.4 多重繼承 149
8.4 實(shí)驗 150
8.4.1 聲明類(lèi) 150
8.4.2 類(lèi)的繼承和多態(tài) 151
8.4.3 復制對象 152
8.5 小結 153
習題 154
參考文獻 154
第9章 異 常
9.1 異常概述 155
9.1.1 認識異常 155
9.1.2 處理異常 155
9.1.3 拋出異常 160
9.2 異常處理流程 161
9.3 自定義異常 161
9.4 實(shí)驗 162
9.4.1 利用try-except處理除數為零的異常 162
9.4.2 自定義異常的使用 163
9.4.3 raise關(guān)鍵字的使用 164
9.4.4 內置異常處理語(yǔ)句的使用 164
9.5 小結 165
習題 165
參考文獻 165
第10章 文 件 操 作
10.1 打開(kāi)文件 166
10.1.1 文件模式 167
10.1.2 文件緩沖區 168
10.2 基本的文件方法 168
10.2.1 讀和寫(xiě) 168
10.2.2 讀取行 169
10.2.3 關(guān)閉文件 170
10.2.4 文件重命名 170
10.2.5 刪除文件 171
10.3 String I/O函數 171
10.3.1 輸出到屏幕 171
10.3.2 讀取鍵盤(pán)輸入 171
10.4 基本的目錄方法 172
10.4.1 創(chuàng )建目錄 172
10.4.2 顯示當前工作目錄 172
10.4.3 改變目錄 173
10.4.4 刪除目錄 173
10.5 實(shí)驗 173
10.5.1 文件操作 173
10.5.2 目錄操作 174
10.5.3 I/O函數的使用 175
10.6 小結 176
習題 176
參考文獻 176
第11章 項目實(shí)戰:爬蟲(chóng)程序
11.1 爬蟲(chóng)概述 178
11.1.1 準備工作 179
11.1.2 爬蟲(chóng)類(lèi)型 179
11.1.3 爬蟲(chóng)原理 180
11.2 爬蟲(chóng)三大庫 181
11.2.1 Requests庫 181
11.2.2 BeautifulSoup庫 187
11.2.3 Lxml庫 193
11.3 案例剖析:酷狗TOP500數據爬取 198
11.3.1 思路簡(jiǎn)析 198
11.3.2 代碼實(shí)現 199
11.3.3 代碼分析 199
11.4 Scrapy框架 201
11.4.1 Scrapy爬蟲(chóng)框架 201
11.4.2 Scrapy的安裝 202
11.4.3 Scrapy的使用 204
11.5 實(shí)驗 209
參考文獻 210
第12章 項目實(shí)戰:數據可視化
12.1 Matplotlib簡(jiǎn)介 212
12.1.1 Pyplot模塊介紹 212
12.1.2 plot()函數 215
12.1.3 繪制子圖 216
12.1.4 添加標注 218
12.1.5 Pylab模塊應用 219
12.2 Artist模塊介紹 220
12.2.1 Artist模塊概述 220
12.2.2 Artist的屬性 221
12.3 Pandas繪圖 222
12.4 案例剖析:詞云圖 225
12.4.1 思路簡(jiǎn)析 226
12.4.2 代碼實(shí)現 227
12.4.3 代碼分析 228
12.5 實(shí)驗 229
參考文獻 230
第13章 項目實(shí)戰:數據分析
13.1 數據清洗 231
13.1.1 編碼問(wèn)題 231
13.1.2 缺失值分析 232
13.1.3 去除異常值 233
13.1.4 去除重復值與冗余信息 233
13.2 數據存取 234
13.2.1 CSV文件存取 234
13.2.2 JSON文件的存取 236
13.2.3 XLSX文件的存取 237
13.2.4 MySQL數據庫文件的存取 239
13.3 NumPy 245
13.3.1 NumPy簡(jiǎn)介 245
13.3.2 NumPy基礎 246
13.4 案例剖析:房天下西安二手房數據分析 251
13.4.1 思路簡(jiǎn)析 251
13.4.2 代碼實(shí)現 252
13.4.3 代碼分析 252
13.5 實(shí)驗 258
參考文獻 259
附錄A Python代碼風(fēng)格指南:PEP8 260
附錄B IPython 指南 263
附錄C Pycharm 指南 267