定價:99元 齣版時間:2016.6 齣版社:人民郵電齣版社
書 號 978-7-115-41477-9 頁 數 520 印刷方式 黑白印刷 開 本 16開 齣版狀態 正在印刷 《Python核心編程(第3版)》是**,圖書《Python核心編程(第二版)》的全新升級版本,總共分為3部分。第1部分為講解瞭Python的一些通用應用,包括正則錶達式、網絡編程、Internet客戶端編程、多綫程編程、GUI編程、數據庫編程、Microsoft Office編程、擴展Python等內容。第2部分講解瞭與Web開發相關的主題,包括Web客戶端和服務器、CGI和WSGI相關的Web編程、Django Web框架、雲計算、高級Web服務。第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
深入探索 Python 的強大魔力:從入門到精通的蛻變之旅 在數字化浪潮席捲全球的今天,Python 以其簡潔的語法、強大的庫支持和廣泛的應用領域,已成為編程界炙手可熱的明星語言。無論你是初涉編程的新手,渴望掌握一門易學易用的語言,還是經驗豐富的開發者,希望拓展技術棧,精進專業技能,Python 都能為你提供無限可能。而《Python核心編程(第3版)中文版》正是你踏上 Python 之旅,直至登峰造極的最佳嚮導。這本書,不僅僅是一本編程教程,更是一次深入 Python 內核,理解其設計哲學,掌握其精髓的係統性學習體驗。 為什麼選擇 Python? Python 的魅力在於它的通用性。從 Web 開發、數據科學、人工智能到自動化腳本,再到桌麵應用和遊戲開發,Python 幾乎無處不在。它的易讀性讓你能專注於解決問題本身,而非糾結於復雜的語法細節。龐大而活躍的社區意味著你總能找到支持和資源,豐富的第三方庫更是能讓你站在巨人的肩膀上,事半功倍。對於想要快速構建原型、實現創意的開發者來說,Python 絕對是首選。 《Python核心編程(第3版)中文版》的獨特價值 本書並非簡單地羅列 Python 的各種語法特性,而是以一種循序漸進、由淺入深的方式,引導讀者全麵理解 Python 的運作機製。它不僅僅關注“怎麼做”,更深入探究“為什麼這樣做”,培養讀者獨立思考和解決問題的能力。 第一部分:Python 語言的基石——掌握核心概念 本書的開篇,將帶領你穿越 Python 的基礎世界。你將首先接觸到 Python 的安裝與配置,確保你的開發環境搭建無誤。接著,你會深入理解 Python 的數據類型,包括數字、字符串、列錶、元組、字典和集閤。這些基本構建塊是構建任何復雜程序的基礎。你會學習如何有效地操作和轉換這些數據,為後續的學習打下堅實基礎。 變量的聲明與賦值、運算符的運用,以及錶達式的構建,都將通過清晰的示例得到闡述。你將掌握條件語句(if, elif, else)和循環語句(for, while)的使用,從而編寫齣能夠根據不同情況做齣判斷和重復執行任務的程序。函數的定義與調用是代碼復用和模塊化的關鍵,本書會詳細講解函數參數的傳遞、作用域規則以及如何編寫可重用的函數。 異常處理是編寫健壯程序的必備技能。你將學習 `try-except` 塊的使用,理解如何捕獲和處理程序運行時可能齣現的錯誤,避免程序崩潰,提升用戶體驗。模塊和包的導入與使用,讓你能夠利用 Python 強大的標準庫和第三方庫,極大地提高開發效率。 第二部分:麵嚮對象編程——構建更強大的程序 Python 是一門強大的麵嚮對象編程(OOP)語言,掌握 OOP 思想是邁嚮更高級編程的關鍵一步。本書將詳細介紹類的定義、對象的創建、屬性和方法的訪問。你將理解封裝、繼承和多態這三大 OOP 核心概念,並通過大量實例學會如何運用它們來設計和組織代碼,構建更具可維護性和可擴展性的應用程序。 你會學習構造函數 (`__init__`)、析構函數 (`__del__`),以及類變量和實例變量的區彆。繼承允許你創建新的類,並在現有類的基礎上添加新功能,這在代碼復用方麵具有不可估量的價值。多態性則允許不同類的對象對同一消息做齣不同的響應,增加瞭程序的靈活性。 Python 獨特的魔術方法(dunder methods),如 `__str__`、`__repr__`、`__len__` 等,將為你揭示 Python 底層的實現機製,並教你如何重載運算符,讓你的對象行為更符閤預期。 第三部分:Python 的高級特性——解鎖更深層的力量 在掌握瞭基礎和麵嚮對象編程後,本書將帶你進入 Python 的高級領域。生成器(generators)和迭代器(iterators)是 Python 中高效處理大規模數據的重要工具,它們允許你按需生成數據,節省內存。裝飾器(decorators)是 Python 中一種優雅的元編程技術,可以讓你在不修改原函數代碼的情況下,為其添加額外的功能。 上下文管理器(context managers),通過 `with` 語句,能讓你更安全、更便捷地管理資源,例如文件句柄或網絡連接。正則錶達式(regular expressions)是處理文本匹配和模式識彆的利器,本書將幫助你掌握其強大的模式匹配能力。 列錶推導式、字典推導式和集閤推導式,為生成和轉換序列提供瞭簡潔而富有錶現力的語法。你還將學習文件 I/O 操作,掌握如何讀取和寫入文件,處理各種文件格式。 第四部分:Python 的實踐應用——從理論走嚮實戰 本書的最後部分,將側重於 Python 在實際開發中的應用。你將學習如何與數據庫交互,掌握 SQL 語言,並學習使用 SQLAlchemy 等 ORM 工具,實現數據的持久化存儲和高效管理。 對於 Web 開發,本書將為你提供堅實的基礎。雖然書中不會直接教授某個具體的 Web 框架,但它會為你講解構建 Web 應用所需的核心知識,例如 HTTP 協議、服務器端腳本的概念,以及如何處理客戶端請求和生成響應。理解瞭這些底層原理,你將能夠更輕鬆地學習和掌握 Flask、Django 等流行 Web 框架。 此外,你還將接觸到多綫程和多進程編程,瞭解如何利用並行處理來提高程序的性能。網絡編程的基礎知識,如套接字(sockets)的使用,將為你打開網絡通信的大門。 不僅僅是代碼,更是思維的升華 《Python核心編程(第3版)中文版》的強大之處在於,它不僅僅是一本關於“代碼”的書,更是一本關於“如何思考”的書。書中大量的示例代碼,經過精心設計,能夠清晰地闡釋每一個概念。每一章的練習題,都鼓勵讀者動手實踐,鞏固所學知識,並挑戰自己解決實際問題。 本書的作者擁有豐富的教學和實踐經驗,他能夠將復雜的技術概念以易於理解的方式呈現齣來。其嚴謹的邏輯結構和清晰的行文風格,讓你在閱讀過程中能夠保持專注,並能快速地找到所需信息。 總結 如果你渴望掌握一門在當今軟件開發領域具有舉足輕重地位的語言,如果你希望深入理解 Python 的工作原理,並能夠構建齣高質量、高效率的應用程序,那麼《Python核心編程(第3版)中文版》絕對是你不可或缺的伴侶。它將陪伴你走過從新手到高手的蛻變之路,讓你能夠自信地應對各種編程挑戰,並在快速發展的技術浪潮中,占據一席之地。準備好開啓你的 Python 探索之旅瞭嗎?這本書,就是你最好的起點。