Python核心編程第3版

Python核心編程第3版

《Python核心編程第3版》是2016年出版的圖書,作者是[美] 衛斯理 春(Wesley Chun)。

基本介紹

  • 書名:Python核心編程第3版 
  • 作者:[美] 衛斯理 春(Wesley Chun) 
  • ISBN:978-7-115-41477-9 
  • 頁數:635頁 
  • 定價:99元 
  • 出版時間:2016-5
  • 開本:16 
基本簡介,目錄,

基本簡介

《Python核心編程(第3版)》是經典暢銷圖書《Python核心編程(第二版)》的全新升級版本,總共分為3部分。第1部分為講解了Python的一些通用套用,包括正則表達式、網路編程、Internet客戶端編程、多執行緒編程、GUI編程、資料庫編程、Microsoft Office編程、擴展Python等內容。第2部分講解了與Web開發相關的主題,包括Web客戶端和伺服器、CGI和WSGI相關的Web編程、Django Web框架、雲計算、高級Web服務。第3部分則為一個補充/實驗章節,包括文本處理以及一些其他內容。
《Python核心編程(第3版)》適合具有一定經驗的Python開發人員閱讀。

目錄

第1部分 通用套用主題
第1章 正則表達式 2
1.1 簡介/動機 3
1.2 特殊符號和字元 5
1.2.1 使用擇一匹配符號匹配多個正則表達式模式 6
1.2.2 匹配任意單個字元 6
1.2.3 從字元串起始或者結尾或者單詞邊界匹配 7
1.2.4 創建字元集 8
1.2.5 限定範圍和否定 8
1.2.6 使用閉包操作符實現存在性和頻數匹配 9
1.2.7 表示字元集的特殊字元 10
1.2.8 使用圓括弧指定分組 10
1.2.9 擴展表示法 11
1.3 正則表達式和Python語言 11
1.3.1 re模組:核心函式和方法 12
1.3.2 使用compile()函式編譯正則表達式 13
1.3.3 匹配對象以及group()和groups()方法 14
1.3.4 使用match()方法匹配字元串 14
1.3.5 使用search()在一個字元串中查找模式(搜尋與匹配的對比) 15
1.3.6 匹配多個字元串 16
1.3.7 匹配任何單個字元(.) 16
1.3.8 創建字元集([ ]) 17
1.3.9 重複、特殊字元以及分組 18
1.3.10 匹配字元串的起始和結尾以及單詞邊界 20
1.3.11 使用findall()和finditer()查找每一次出現的位置 21
1.3.12 使用sub()和subn()搜尋與替換 22
1.3.13 在限定模式上使用split()分隔字元串 23
1.3.14 擴展符號 24
1.3.15 雜項 27
1.4 一些正則表達式示例 28
1.5 更長的正則表達式示例 33
1.5.1 匹配字元串 35
1.5.2 搜尋與匹配……還有貪婪 37
1.6 練習 39
第2章 網路編程 42
2.1 簡介 43
2.2 客戶端/伺服器架構 43
2.2.1 硬體客戶端/伺服器架構 43
2.2.2 軟體客戶端/伺服器架構 44
2.2.3 銀行出納員作為伺服器嗎 44
2.2.4 客戶端/伺服器網路編程 45
2.3 套接字:通信端點 46
2.3.1 套接字 46
2.3.2 套接字地址:主機-連線埠對 47
2.3.3 面向連線的套接字與無連線的套接字 47
2.4 Python中的網路編程 48
2.4.1 socket()模組函式 49
2.4.2 套接字對象(內置)方法 49
2.4.3 創建TCP伺服器 51
2.4.4 創建TCP客戶端 54
2.4.5 執行TCP伺服器和客戶端 56
2.4.6 創建UDP伺服器 58
2.4.7 創建UDP客戶端 59
2.4.8 執行UDP伺服器和客戶端 60
2.4.9 socket模組屬性 61
2.5 *SocketServer模組 62
2.5.1 創建SocketServer TCP伺服器 63
2.5.2 創建SocketServer TCP客戶端 64
2.5.3 執行TCP伺服器和客戶端 65
2.6 *Twisted框架介紹 66
2.6.1 創建Twisted Reactor TCP伺服器 66
2.6.2 創建Twisted Reactor TCP客戶端 67
2.6.3 執行TCP伺服器和客戶端 69
2.7 相關模組 69
2.8 練習 70
第3章 網際網路客戶端編程 74
3.1 網際網路客戶端簡介 75
3.2 檔案傳輸 75
3.2.1 檔案傳輸網際網路協定 75
3.2.2 檔案傳輸協定 76
3.2.3 Python和FTP 77
3.2.4 ftplib.FTP類的方法 77
3.2.5 互動式FTP示例 78
3.2.6 客戶端FTP程式示例 79
3.2.7 FTP的其他內容 80
3.3 網路新聞 81
3.3.1 Usenet與新聞組 81
3.3.2 網路新聞傳輸協定 82
3.3.3 Python和NNTP 83
3.3.4 nntplib.NNTP類方法 83
3.3.5 互動式NNTP示例 84
3.3.6 客戶端程式NNTP示例 85
3.3.7 NNTP的其他內容 89
3.4 電子郵件 90
3.4.1 電子郵件系統組件和協定 90
3.4.2 傳送電子郵件 91
3.4.3 Python和SMTP 92
3.4.4 smtplib.SMTP類方法 92
3.4.5 互動式SMTP示例 93
3.4.6 SMTP的其他內容 94
3.4.7 接收電子郵件 94
3.4.8 POP和IMAP 95
3.4.9 Python和POP3 95
3.4.10 互動式POP3示例 96
3.4.11 poplib.POP3類方法 97
3.4.12 客戶端程式SMTP和POP3示例 98
3.4.13 Python和IMAP4 100
3.4.14 互動式IMAP4示例 100
3.4.15 imaplib.IMAP4類中的常用方法 101
3.5 實戰 102
3.5.1 生成電子郵件 102
3.5.2 解析電子郵件 104
3.5.3 基於Web的雲電子郵件服務 105
3.5.4 最佳實踐:安全、重構 106
3.5.5 Yahoo! Mail 108
3.5.6 Gmail 112
3.6 相關模組 115
3.6.1 電子郵件 115
3.6.2 其他網際網路客戶端協定 115
3.7 練習 116
第4章 多執行緒編程 122
4.1 簡介/動機 123
4.2 執行緒和進程 124
4.2.1 進程 124
4.2.2 執行緒 124
4.3 執行緒和Python 125
4.3.1 全局解釋器鎖 125
4.3.2 退出執行緒 126
4.3.3 在Python中使用執行緒 126
4.3.4 不使用執行緒的情況 126
4.3.5 Python的threading模組 128
4.4 thread模組 128
4.5 threading模組 132
4.5.1 Thread類 133
4.5.2 threading模組的其他函式 139
4.6 單執行緒和多執行緒執行對比 140
4.7 多執行緒實踐 142
4.7.1 圖書排名示例 142
4.7.2 同步原語 149
4.7.3 鎖示例 149
4.7.4 信號量示例 156
4.8 生產者-消費者問題和Queue/queue模組 159
4.9 執行緒的替代方案 162
4.9.1 subprocess模組 163
4.9.2 multiprocessing模組 163
4.9.3 concurrent.futures模組 163
4.10 相關模組 165
4.11 練習 165
第5章 GUI編程 168
5.1 簡介 169
5.1.1 Tcl、Tk和Tkinter 169
5.1.2 安裝和使用Tkinter 170
5.1.3 客戶端/服務端架構 170
5.2 Tkinter和Python編程 170
5.2.1 Tkinter模組:添加Tk到套用中 171
5.2.2 GUI編程介紹 171
5.2.3 頂層視窗:Tkinter.Tk() 173
5.2.4 Tk控制項 173
5.3 Tkinter示例 174
5.3.1 Label控制項 174
5.3.2 Button控制項 175
5.3.3 Label和Button控制項 175
5.3.4 Label、Button和Scale控制項 176
5.3.5 偏函式套用示例 178
5.3.6 中級Tkinter示例 180
5.4 其他GUI簡介 185
5.4.1 Tk接口擴展(Tix) 187
5.4.2 Python MegaWidgets(PMW) 188
5.4.3 wxWidgets和wxPython 188
5.4.4 GTK+和PyGTK 190
5.4.5 Tile/Ttk 192
5.5 相關模組和其他GUI 194
5.6 練習 196
第6章 資料庫編程 198
6.1 簡介 199
6.1.1 持久化存儲 199
6.1.2 資料庫基本操作和SQL 199
6.1.3 資料庫和Python 201
6.2 Python的DB-API 203
6.2.1 模組屬性 203
6.2.2 Connection對象 205
6.2.3 Cursor對象 206
6.2.4 類型對象和構造函式 207
6.2.5 關係資料庫 209
6.2.6 資料庫和Python:適配器 210
6.2.7 使用資料庫適配器的示例 210
6.2.8 資料庫適配器示例套用 215
6.3 ORM 226
6.3.1 考慮對象,而不是SQL 227
6.3.2 Python和ORM 227
6.3.3 員工角色資料庫示例 228
6.3.4 SQLAlchemy 229
6.3.5 SQLObject 240
6.4 非關係資料庫 245
6.4.1 NoSQL介紹 245
6.4.2 MongoDB 246
6.4.3 PyMongo:MongoDB和Python 246
6.4.4 總結 250
6.5 相關文獻 250
6.6 練習 252
第7章 *Microsoft Office編程 256
7.1 簡介 257
7.2 使用Python進行COM客戶端編程 257
7.2.1 客戶端COM編程 258
7.2.2 入門 258
7.3 入門示例 259
7.3.1 Excel 259
7.3.2 Word 261
7.3.3 PowerPoint 262
7.3.4 Outlook 264
7.4 中級示例 266
7.4.1 Excel 266
7.4.2 Outlook 268
7.4.3 PowerPoint 273
7.4.4 總結 280
7.5 相關模組/包 281
7.6 練習 281
第8章 擴展Python 286
8.1 簡介和動機 287
8.1.1 Python擴展簡介 287
8.1.2 什麼情況下需要擴展Python 288
8.1.3 什麼情況下不應該擴展Python 288
8.2 編寫Python擴展 289
8.2.1 創建套用代碼 289
8.2.2 根據樣板編寫封裝代碼 291
8.2.3 編譯 296
8.2.4 導入並測試 297
8.2.5 引用計數 300
8.2.6 執行緒和全局解釋器鎖 301
8.3 相關主題 302
8.3.1 SWIG 302
8.3.2 Pyrex 302
8.3.3 Cython 302
8.3.4 Psyco 303
8.3.5 PyPy 303
8.3.6 嵌入Python 304
8.4 練習 304
第2部分 Web開發
第9章 Web客戶端和伺服器 306
9.1 簡介 307
9.1.1 Web套用:客戶端/伺服器計算 307
9.1.2 網際網路 308
9.2 Python Web客戶端工具 310
9.2.1 統一資源定位符 310
9.2.2 urlparse模組 312
9.2.3 urllib模組/包 313
9.2.4 使用urllib2 HTTP驗證的示例 317
9.2.5 將HTTP驗證示例移植到Python 3中 319
9.3 Web客戶端 322
9.3.1 一個簡單的Web爬蟲/蜘蛛/機器人 322
9.3.2 解析Web頁面 328
9.3.3 可程式的Web瀏覽 333
9.4 Web(HTTP)伺服器 336
9.5 相關模組 339
9.6 練習 341
第10章 Web編程:CGI和WSGI 345
10.1 簡介 346
10.2 幫助Web伺服器處理客戶端數據 346
10.2.1 CGI簡介 346
10.2.2 CGI應用程式 347
10.2.3 cgi模組 348
10.2.4 cgitb模組 348
10.3 構建CGI應用程式 349
10.3.1 構建Web伺服器 349
10.3.2 建立表單頁 351
10.3.3 生成結果頁面 352
10.3.4 生成表單和結果頁面 353
10.3.5 全面互動的Web站點 357
10.4 在CGI中使用Unicode 362
10.5 高級CGI 364
10.5.1 mulitipart表單提交和檔案上傳 364
10.5.2 多值欄位 364
10.5.3 cookie 365
10.5.4 cookie和檔案上傳 365
10.6 WSGI簡介 373
10.6.1 動機(替代CGI) 373
10.6.2 伺服器集成 374
10.6.3 外部進程 374
10.6.4 WSGI簡介 375
10.6.5 WSGI伺服器 376
10.6.6 參考伺服器 377
10.6.7 WSGI套用示例 378
10.6.8 中間件及封裝WSGI套用 378
10.6.9 在Python 3中使用WSGI 379
10.7 現實世界中的Web開發 380
10.8 相關模組 380
10.9 練習 381
第11章 Web框架:Django 384
11.1 簡介 385
11.2 Web框架 385
11.3 Django簡介 386
11.4 項目和套用 390
11.4.1 在Django中創建項目 390
11.4.2 運行開發伺服器 393
11.5 “Hello World”套用(一個部落格) 394
11.6 創建模型來添加資料庫服務 396
11.6.1 設定資料庫 396
11.6.2 創建表 398
11.7 Python 套用shell 400
11.7.1 在Django中使用Python shell 400
11.7.2 測試數據模型 402
11.8 Django管理套用 403
11.8.1 設定admin 403
11.8.2 使用admin 404
11.9 創建部落格的用戶界面 410
11.9.1 創建模板 411
11.9.2 創建URL模式 412
11.9.3 創建視圖函式 415
11.10 改進輸出 418
11.11 處理用戶輸入 422
11.11.1 模板:添加HTML表單 423
11.11.2 添加URLconf項 423
11.11.3 視圖:處理用戶輸入 423
11.11.4 跨站點請求偽造 424
11.12 表單和模型表單 426
11.12.1 Django表單簡介 426
11.12.2 模型表單示例 427
11.12.3 使用ModelForm來生成HTML表單 427
11.12.4 處理ModelForm數據 428
11.13 視圖進階 429
11.14 *改善外觀 431
11.15 *單元測試 432
11.15.1 blog套用的代碼審查 434
11.15.2 blog套用總結 439
11.16 *中級Django套用:TweetApprover 439
11.16.1 創建項目檔案結構 440
11.16.2 安裝Twython庫 445
11.16.3 URL結構 446
11.16.4 數據模型 449
11.16.5 提交新推文以便審核 453
11.16.6 審核推文 457
11.17 資源 465
11.18 總結 465
11.19 練習 466
第12章 雲計算:Google App Engine 470
12.1 簡介 471
12.2 雲計算 471
12.2.1 雲計算服務的層次 472
12.2.2 App Engine 473
12.3 沙盒和App Engine SDK 476
12.4 選擇一個App Engine框架 479
12.5 Python 2.7支持 485
12.5.1 一般差異 486
12.5.2 代碼中的差異 486
12.6 與Django比較 487
12.6.1 開始“Hello World” 487
12.6.2 手動創建“Hello World”(Zip檔案用戶) 488
12.7 將“Hello World”改成一個 簡單的部落格 489
12.7.1 快速發現改動:30秒內將純文本轉成HTML 489
12.7.2 添加表單 490
12.7.3 添加Datastore服務 492
12.7.4 疊代改進 496
12.7.5 開發/SDK控制台 496
12.8 添加Memcache服務 502
12.9 靜態檔案 505
12.10 添加用戶服務 505
12.10.1 Google賬號驗證 506
12.10.2 聯合驗證 507
12.11 遠程API shell 507
12.12 問與答(Python實現) 509
12.12.1 傳送電子郵件 509
12.12.2 接收電子郵件 510
12.13 使用XMPP傳送即時訊息 512
12.14 處理圖片 514
12.15 任務佇列(非定期任務) 514
12.15.1 創建任務 515
12.15.2 配置app.yaml 515
12.15.3 其他任務創建選項 516
12.15.4 將傳送電子郵件作為任務 517
12.15.5 deferred包 519
12.16 使用Appstats進行分析 520
12.16.1 在app.yaml中添加標準處理程式 521
12.16.2 添加自定義Admin Console頁面 521
12.16.3 作為內置界面啟用界面 521
12.17 URLfetch服務 522
12.18 問與答(無Python實現) 522
12.18.1 Cron服務(計畫任務作業) 523
12.18.2 預熱請求 523
12.18.3 DoS保護 524
12.19 廠商鎖定 524
12.20 資源 525
12.21 總結 526
12.22 練習 527
第13章 Web服務 530
13.1 簡介 531
13.2 Yahoo!金融股票報價伺服器 531
13.3 Twitter微博 534
13.3.1 社交網路 534
13.3.2 Twitter和Python 535
13.3.3 稍微長一點的API組合套用示例 537
13.3.4 總結 547
13.3.5 額外線上資源 548
13.4 練習 548
第3部分 補充/實驗章節
第14章 文本處理 553
14.1 逗號分隔值(CSV) 554
14.1.1 CSV簡介 554
14.1.2 再論股票投資組合示例 556
14.2 JSON 557
14.3 可擴展標記語言 561
14.3.1 XML簡介 562
14.3.2 Python和XML 562
14.3.3 XML實戰 566
14.3.4 *使用XML-RPC的客戶端-伺服器服務 569
14.4 參考文獻 573
14.5 相關模組 574
14.6 練習 574
第15章 其他內容 577
15.1 Jython 578
15.1.1 Jython簡介 578
15.1.2 Swing GUI開發示例 579
15.2 Google+ 581
15.2.1 Google+平台簡介 582
15.2.2 Python和Google+API 582
15.2.3 一個簡單的社交媒體分析工具 582
15.3 練習 590
附錄A 部分練習參考答案 593
附錄B 參考表 597
B.1 Python關鍵字 597
B.2 Python標準操作符和函式 598
B.3 數值類型操作符和函式 599
B.4 序列類型操作符和函式 600
B.5 字元串格式化操作符轉換符號 602
B.6 字元串格式化操作符指令 603
B.7 字元串類型內置方法 603
B.8 列表類型內置方法 605
B.9 字典類型內置方法 605
B.10 集合類型操作符和內置函式 606
B.11 檔案對象方法和數據屬性 607
B.12 Python異常 608
B.13 類的特殊方法 610
B.14 Python操作符匯總 612
附錄C Python 3:一種程式語言進化的產物 614
C.1 為何Python在變化 614
C.2 都發生了哪些變化 615
C.2.1 print變成了print() 615
C.2.2 字元串:默認為Unicode編碼 616
C.2.3 單類類型 616
C.2.4 更新異常的語法 617
C.2.5 整數的更新 618
C.2.6 疊代器無處不在 619
C.3 遷移工具 619
C.3.1 2to3工具 619
C.3.2 Python 2.6+ 620
C.4 結論 620
C.5 參考資料 620
附錄D 利用Python 2.6+向Python 3遷移 622
D.1 Python 3:Python的下一代 622
D.2 整數 623
D.2.1 單整數類型 624
D.2.2 新型二進制和改進的八進制字元 624
D.2.3 經典除法或真除法 625
D.3 內置函式 626
D.3.1 print語句或print()函式 626
D.3.2 reduce()轉移到了functools模組中 627
D.3.3 其他更新 627
D.4 面向對象編程:兩種不同的類對象 628
D.5 字元串 629
D.6 異常 630
D.6.1 處理異常(使用as) 630
D.6.2 拋出異常 630
D.7 其他轉換工具和技巧 631
D.8 編寫兼容版本2.x和3.x的代碼 632
D.8.1 對比print和print() 632
D.8.2 將你的方法導入解決方案中 633
D.8.3 整合在一起 634
D.9 結論 635

相關詞條

熱門詞條

聯絡我們