Python核心編程 第3版pdf

2019年1月17日20:26:21 發表評論 209

適讀人群 :本書適合具有一定經驗的Python開發人員閱讀

全面涵蓋當今應用開發中的眾多領域  為中級Python開發人員提供實踐方法  涵蓋大量實用的代碼案例  每章末尾的習題有助于鞏固所學知識

想進一步提升Python編程水平?請深入分析真實應用程序中使用的大量相關主題  涵蓋了正則表達式、Internet/網絡編程、GUI、SQL/數據庫/ORM、多線程、Web開發  了解當前的開發區域,比如Google+、Twitter、MongoDB、OAuth、Python 3遷移、Java/Jython  囊括有關Django、Google App Engine、CSV/JSON/XML和Microsoft Office的全新內容。  包含Python 2和Python 3代碼,以便立即可以使用  提供了代碼片段、互動案例和實用練習,旨在鞏固Python技能

Python是一種靈活、可靠且具有表現力的編程語言,它將編譯語言的強大與腳本語言的簡潔性、快速開發特性整合起來。在本書中,Python開發人員兼企業培訓師Wesley Chun會幫助您將Python技能提升到更高的水平。  本書涵蓋了成為一名技術全面的Python開發人員所需的一切內容。本書講解了應用開發相關的多個領域,而且書中的內容可以立即應用到項目開發中。此外,本書還包含了一些使用Python 2和Python 3編寫的代碼案例,以及一些代碼移植技巧。有些代碼片段甚至無須修改就可以運行在Python 2.x或Python 3.x上。

本書講解了如下內容:  學習專業的Python風格、實踐以及好的編程習慣;  使用TCP、UDP、XML-RPC來開發客戶端和服務器,并供高級的庫(比如SocketServer和Twisted)使用使用Tkinter和其他可用的工具來開發GUI應用;  通過使用C/C++編寫擴展,或者使用多線程來編寫I/O密集型代碼,提升應用的性能;  探究QSL和關系數據庫、ORM,甚至是MongoDB這樣的非關系型(NonSQL)數據庫;  學習Web編程的基礎知識,包括Web客戶端和服務器,以及CGI和WSGI;  使用正則表達式和強大的文本處理工具,來創建和解析CSV、JSON和XML數據;  使用COM客戶端編程與常見的Microsoft Office軟件(比如Excel、PowerPoint、Outlook)進行交互;  使用Django框架深入了解Web開發,以及使用Google App Engine深入了解云計算;  使用Jyhon探索Java編程,以及在JVM上運行Python代碼的方式;  連接Web服務,比如連接Yahoo!Fiance獲取股票行情,或者連接Yahoo!Mail、Gmail以及其他郵件服務器來下載或發送郵件;  通過學習如何連接Twitter和Google+網絡來擁抱社交媒體的熱潮。

Python核心編程 第3版 內容簡介

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

Python核心編程 第3版 目錄

第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

第12章 云計算:Google App Engine 470

第13章 Web服務 530

第3部分 補充/實驗章節

第14章 文本處理 553

第15章 其他內容 577

附錄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

Python核心編程 第3版 精彩文摘

9.1 簡介

由于Web應用程序的涵蓋面非常廣,因此本書新版中對這一部分進行了重組,針對Web開發劃分了多個章節,每個章節介紹一個主題,讓讀者可以關注Web開發中特定的幾個方面。

在深入其中之前,本章將作為Web開發的介紹章節,再次重點討論客戶端/服務器架構,但這次是從Web的角度來了解。本章將為后續章節打下堅實的基礎。

9.1.1 Web應用:客戶端/服務器計算

Web應用遵循前面反復提到的客戶端/服務器架構。這里說的Web客戶端是瀏覽器,即允許用戶在萬維網上查詢文檔的應用程序。另一邊是Web服務器端,指的是運行在信息提供商的主機上的進程。這些服務器等待客戶端和及其文檔請求,進行相應的處理,并返回相關的數據。正如大多數客戶端/服務器系統中的服務器端一樣,Web服務器端“永遠”運行。圖9-1展示了Web應用的慣用流程。這里,用戶運行Web客戶端程序(如瀏覽器),連接因特網上任意位置的Web服務器來獲取數據。

圖書網:Python核心編程 第3版pdf

此資源下載價格為5圖書幣,請先

80%的人都看過:

  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: