目 錄
第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.2 算術運算符 36
2.6.3 比較運算符 38
2.6.4 賦值運算符 39
2.6.5 位運算符 40
2.6.6 邏輯運算符 41
2.6.7 成員運算符 42
2.6.8 身份運算符 43
2.6.9 運算符優先級 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章 正則錶達式 244
11.1 認識正則錶達式 245
11.2 re模塊 247
11.2.1 re.match函數 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.1 全局解釋器鎖 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.1 數據持久化 353
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
· · · · · · (
收起)