內容簡介
本書專門針對Python新手量身定做,涵蓋了Python 3 實際開發的重要知識點,內容包括:Python語言的類型和對象、操作符和表達式、編程結構和控制流、函式、序列、多執行緒、
正則表達式、面向對象編程、檔案操作、網路編程、郵件收發、資料庫操作等,提供Python爬蟲、數據處理項目範例,各章還安排了調試、問題解答、溫故知新、牛九小試等內容,以幫助讀者學會處理程式異常、解答學習困惑、鞏固知識、學以致用。
本書通俗易懂、示例豐富、代碼可讀性及可操作性強。非常適合Python 3.x初學者、想學習和了解Python 3的程式設計師,也可作為Python網課、培訓及大專院校教學用書。
圖書目錄
第1章 進入Python 3.5的精彩世界 1
1.1 Python的起源 2
1.2 Python的套用場合 3
1.3 從2.7到3.5,Python的新特性 5
1.4 如何學習Python 6
1.5 Python環境構建 7
1.5.1 在Windows系統中安裝Python 7
1.5.2 在Linux和UNIX系統中安裝Python 14
1.5.3 在Mac OS系統中安裝Python 17
1.5.4 其他版本 18
1.6 從hello word開始 18
1.7 調試 19
1.8 問題解答 20
1.9 溫故知新,學以致用 21
第2章 開啟Python之旅 22
2.1 認識程式 23
2.1.1 程式 23
2.1.2 調試 24
2.1.3 語法錯誤 24
2.1.4 運行錯誤 24
2.1.5 語義錯誤 25
2.2 數據類型 25
2.2.1 整型 25
2.2.2 浮點型 27
2.2.3 複數 28
2.2.4 數據類型轉換 28
2.2.5 常量 29
2.3 變數和關鍵字 29
2.3.1 變數 29
2.3.2 變數名稱 33
2.4 語句 34
2.5 表達式 35
2.6 運算符和操作對象 36
2.6.1 什麼是運算符和操作對象 36
2.6.5 位運算符 40
2.6.7 成員運算符 42
2.6.8 身份運算符 43
2.7 字元串操作 45
2.8 注釋 49
2.9 調試 50
2.10 問題解答 50
2.11 溫故知新,學以致用 51
第3章 列表和元組 52
3.1 通用序列操作 53
3.1.1 索引 53
3.1.2 分片 54
3.1.3 序列相加 57
3.1.4 乘法 58
3.1.5 成員資格 59
3.1.6 長度、最小值和最大值 60
3.2 列表 60
3.2.1 更新列表 61
3.2.2 嵌套列表 65
3.2.3 列表方法 65
3.3 元組 74
3.3.1 tuple函式 75
3.3.2 元組的基本操作 75
3.3.3 元組內置函式 76
3.4 列表與元組的區別 77
3.5 調試 78
3.6 問題解答 79
3.7 溫故知新,學以致用 79
第4章 字元串 81
4.1 字元串的基本操作 82
4.2 字元串格式化 83
4.2.1 字元串格式化符號 83
4.2.2 字元串格式化元組 85
4.3 字元串方法 87
4.3.1 find( )方法 87
4.3.2 join( )方法 88
4.3.3 lower( )方法 89
4.3.4 upper( )方法 90
4.3.5 swapcase( )方法 91
4.3.6 replace( )方法 91
4.3.7 split( )方法 92
4.3.8 strip( )方法 92
4.3.9 translate( )方法 93
4.4 調試 94
4.5 問題解答 95
4.6 溫故知新,學以致用 95
第5章 字典 96
5.1 字典的使用 97
5.2 創建和使用字典 97
5.2.1 dict函式 98
5.2.2 字典的基本操作 98
5.2.3 字典的格式化字元串 100
5.2.4 字典和列表的區別 100
5.3 字典方法 101
5.3.1 clear( )方法 101
5.3.2 copy( )方法 102
5.3.3 fromkeys( )方法 103
5.3.4 get( )方法 104
5.3.5 key in dict方法 105
5.3.6 items( )方法 105
5.3.7 keys( )方法 105
5.3.8 setdefault( )方法 106
5.3.9 update( )方法 107
5.3.10 values( )方法 107
5.4 調試 108
5.5 問題解答 108
5.6 溫故知新,學以致用 109
第6章 條件、循環和其他語句 110
6.1 使用文本編輯器 111
6.2 import的使用 113
6.2.1 import語句 113
6.2.2 使用逗號輸出 116
6.3 別樣的賦值 116
6.3.1 序列解包 116
6.3.2 鏈式賦值 118
6.3.3 增量賦值 118
6.4 語句塊 119
6.5 條件語句 119
6.5.1 布爾變數的作用 120
6.5.2 if語句 121
6.5.3 else子句 122
6.5.4 elif子句 123
6.5.5 嵌套代碼塊 124
6.5.6 更多操作 124
6.5.7 斷言 127
6.6 循環 128
6.6.1 while循環 128
6.6.2 for循環 129
6.6.3 循環遍歷字典元素 131
6.6.4 疊代工具 132
6.6.5 跳出循環 134
6.6.6 循環中的else子句 136
6.7 pass語句 137
6.8 牛刀小試——猜字遊戲編寫 138
6.9 Python程式調試 140
6.10 問題解答 141
6.11 溫故知新,學以致用 141
第7章 函式 142
7.1 調用函式 143
7.2 定義函式 145
7.3 函式的參數 147
7.3.1 必須參數 148
7.3.2 關鍵字參數 149
7.3.3 默認參數 149
7.3.4 可變參數 153
7.3.5 組合參數 155
7.4 執行流程 155
7.5 形參和實參 156
7.6 變數作用域 157
7.6.1 局部變數 157
7.6.2 全局變數 159
7.7 有返回值和無返回值函式 161
7.8 為什麼要有函式 163
7.9 返回函式 163
7.10 遞歸函式 166
7.11 匿名函式 169
7.12 偏函式 171
7.13 牛刀小試——經典排序之快速排序實現 172
7.14 調試 173
7.15 問題解答 174
7.16 溫故知新,學以致用 174
第8章 面向對象編程 176
8.1 理解面向對象 177
8.1.1 什麼是面向對象編程 177
8.1.2 面向對象術語簡介 177
8.2 類的定義與使用 178
8.2.1 類的定義 178
8.2.2 類的使用 178
8.3 深入類 179
8.3.1 類的構造方法 179
8.3.2 類的訪問許可權 184
8.4 繼承 189
8.5 多態 192
8.6 封裝 196
8.7 多重繼承 197
8.8 獲取對象信息 199
8.9 類的專有方法 202
8.10 牛刀小試——出行建議 207
8.11 調試 209
8.12 問題解答 209
8.13 溫故知新,學以致用 210
第9章 異常 211
9.1 什麼是異常 212
9.2 異常處理 212
9.3 拋出異常 213
9.4 捕捉多個異常 215
9.5 使用一個塊捕捉多個異常 216
9.6 捕捉對象 217
9.7 全捕捉 217
9.8 異常中的else 218
9.9 自定義異常 219
9.10 finally子句 220
9.11 異常和函式 222
9.12 bug的由來 223
9.13 溫故知新,學以致用 223
第10章 日期和時間 224
10.1 日期和時間 225
10.1.1 時間戳 225
10.1.2 時間格式化符號 225
10.1.3 struct_time元組 226
10.2 time模組 227
10.2.1 time( )函式 227
10.2.2 localtime([secs])函式 227
10.2.3 gmtime([secs])函式 228
10.2.4 mktime(t)函式 228
10.2.5 asctime([t])函式 229
10.2.6 ctime([secs])函式 229
10.2.7 sleep(secs)函式 230
10.2.8 clock( )函式 230
10.2.9 strftime(format[, t])函式 231
10.2.10 strptime(string[, format])函式 232
10.2.11 三種時間格式轉化 232
10.3 datetime模組 232
10.4 日曆模組 236
10.5 牛刀小試——時間大雜燴 237
10.6 調試 242
10.7 溫故知新,學以致用 242
11.1 認識正則表達式 245
11.2 re模組 247
11.2.2 re.search方法 247
11.2.3 re.match與re.search的區別 248
11.3 貪婪模式和非貪婪模式 249
11.4 替換 250
11.5 編譯 250
11.6 溫故知新,學以致用 251
第12章 檔案操作 252
12.1 打開檔案 253
12.1.1 檔案模式 254
12.1.2 緩衝 255
12.2 基本檔案方法 255
12.2.1 讀和寫 256
12.2.2 讀寫行 258
12.2.3 關閉檔案 260
12.2.4 檔案重命名 261
12.2.5 刪除檔案 262
12.3 對檔案內容進行疊代 262
12.3.1 按位元組處理 262
12.3.2 按行操作 263
12.3.3 使用fileinput實現懶載入式疊代 264
12.3.4 檔案疊代器 264
12.4 StringIO函式 264
12.5 序列化與反序列化 265
12.5.1 一般序列化與反序列化 266
12.5.2 JSON序列化與反序列化 267
12.6 調試 269
12.7 問題解答 269
12.8 溫故知新,學以致用 270
第13章 多執行緒 271
13.1 執行緒和進程 272
13.1.1 進程 272
13.1.2 執行緒 272
13.1.3 多執行緒與多進程 272
13.2 使用執行緒 273
13.2.2 退出執行緒 274
13.2.3 Python的執行緒模組 274
13.3 _thread模組 274
13.4 threading模組 277
13.5 執行緒同步 282
13.6 執行緒優先權佇列 284
13.7 執行緒與進程比較 287
13.7.1 執行緒切換 287
13.7.2 計算密集型與IO密集型 288
13.7.3 異步IO 288
13.8 調試 289
13.9 問題解答 289
13.10 溫故知新,學以致用 290
第14章 傳送和接收電子郵件 291
14.1 電子郵件介紹 292
14.2 傳送郵件 293
14.2.1 SMTP傳送郵件 293
14.2.2 傳送HTML格式的郵件 296
14.2.3 傳送帶附屬檔案的郵件 297
14.2.4 傳送圖片 298
14.2.5 同時支持HTML和Plain格式 300
14.2.6 加密SMTP 301
14.3 POP3接收郵件 302
14.3.1 POP3下載郵件 302
14.3.2 解析郵件 303
14.4 調試 305
14.5 問題解答 305
14.6 溫故知新,學以致用 306
第15章 網路編程 307
15.1 網路編程初識 308
15.2 TCP/IP簡介 308
15.3 網路設計模組 309
15.3.1 Socket簡介 309
15.3.2 socket模組 309
15.3.3 socket對象(內建)方法 311
15.4 TCP編程 312
15.4.1 客戶端 312
15.4.2 伺服器 315
15.5 UDP編程 319
15.6 urllib模組 322
15.6.1 GET請求 322
15.6.2 POST請求 323
15.7 調試 324
15.8 問題解答 325
15.9 溫故知新,學以致用 325
第16章 運算元據庫 326
16.1 資料庫介紹 327
16.2 Python資料庫API 327
16.2.1 全局變數 328
16.2.2 異常 328
16.2.3 連線和游標 329
16.2.4 類型 330
16.3 資料庫操作 331
16.3.1 資料庫連線 331
16.3.2 創建資料庫表 332
16.3.3 資料庫插入 333
16.3.4 資料庫查詢 334
16.3.5 資料庫更新 335
16.3.6 資料庫刪除 337
16.4 事務 338
16.5 調試 339
16.6 問題解答 339
16.7 溫故知新,學以致用 340
第17章 項目實戰——爬蟲 341
17.1 了解爬蟲 342
17.2 爬蟲的原理 342
17.3 爬蟲常用的幾種技巧 343
17.3.1 基本方法 343
17.3.2 使用代理伺服器 343
17.3.3 cookie處理 344
17.3.4 偽裝成瀏覽器 344
17.3.5 登錄 345
17.4 爬蟲示例——抓取豆瓣電影Top250影評數據 345
17.4.1 確定URL格式 346
17.4.2 頁面抓取 346
17.4.3 提取相關信息 347
17.4.4 寫入檔案 348
17.4.5 完善代碼 348
17.5 本章小結 351
第18章 項目實戰——數據分析 352
18.2 模組化 357
18.2.1 資料庫操作模組化 357
18.2.2 檔案生成模組化 360
18.2.3 郵件傳送模組化 361
18.3 數據分析的實現 365
18.4 項目小結 369
附錄 370
A.1 數學函式 371
A.2 隨機函式 371
A.3 三角函式 371
A.4 Python字元串內建函式 372
A.5 列表方法 373
A.6 字典內置方法 374
A.7 正則表達式模式 374
結束語 376