《Python核心編程(第3版)英文版》是經(jīng)典暢銷圖書《Python核心編程(第二版)》的全新升級版本,總共分為3部分。第1部分為講解了Python的一些通用應用,包括正則表達式、網(wǎng)絡編程、Internet客戶端編程、多線程編程、GUI編程、數(shù)據(jù)庫編程、Microsoft Office編程、擴展Python等內(nèi)容。第2部分講解了與Web開發(fā)相關的主題,包括Web客戶端和服務器、CGI和WSGI相關的Web編程、Django Web框架、云計算、高級Web服務。第3部分則為一個補充/實驗章節(jié),包括文本處理以及一些其他內(nèi)容。
《Python核心編程(第3版)英文版》適合具有一定經(jīng)驗的Python開發(fā)人員閱讀。
全面涵蓋當今應用開發(fā)中的眾多領域
為中級Python開發(fā)人員提供實踐方法
涵蓋大量實用的代碼案例
每章末尾的習題有助于鞏固所學知識
Python是一種靈活、可靠且具有表現(xiàn)力的編程語言,它將編譯語言的強大與腳本語言的簡潔性、快速開發(fā)特性整合起來。在本書中,Python開發(fā)人員兼企業(yè)培訓師Wesley Chun會幫助您將Python技能提升到更高的水平。
本書涵蓋了成為一名技術全面的Python開發(fā)人員所需的一切內(nèi)容。本書講解了應用開發(fā)相關的多個領域,而且書中的內(nèi)容可以立即應用到項目開發(fā)中。此外,本書還包含了一些使用Python 2和Python 3編寫的代碼案例,以及一些代碼移植技巧。有些代碼片段甚至無須修改就可以運行在Python 2.x或Python 3.x上。
本書講解了如下內(nèi)容:
學習專業(yè)的Python風格、實踐以及好的編程習慣;
使用TCP、UDP、XML-RPC來開發(fā)客戶端和服務器,并供高級的庫(比如SocketServer和Twisted)使用使用Tkinter和其他可用的工具來開發(fā)GUI應用;
通過使用C/C++編寫擴展,或者使用多線程來編寫I/O密集型代碼,提升應用的性能;
探究QSL和關系數(shù)據(jù)庫、ORM,甚至是MongoDB這樣的非關系型(NonSQL)數(shù)據(jù)庫;
學習Web編程的基礎知識,包括Web客戶端和服務器,以及CGI和WSGI;
使用正則表達式和強大的文本處理工具,來創(chuàng)建和解析CSV、JSON和XML數(shù)據(jù);
使用COM客戶端編程與常見的Microsoft Office軟件(比如Excel、PowerPoint、Outlook)進行交互;
使用Django框架深入了解Web開發(fā),以及使用Google App Engine深入了解云計算;
使用Jyhon探索Java編程,以及在JVM上運行Python代碼的方式;
連接Web服務,比如連接Yahoo!Fiance獲取股票行情,或者連接Yahoo!Mail、Gmail以及其他郵件服務器來下載或發(fā)送郵件;
通過學習如何連接Twitter和Google+網(wǎng)絡來擁抱社交媒體的熱潮。
Wesley Chun在高中階段開始進入計算世界,當時他使用的是BASIC和6502匯編語言,系統(tǒng)是Commodore。隨后開始在App IIe上使用Pascal語言,然后是再在穿孔卡片上使用ForTran語言。正在在穿孔卡片上使用ForTran的經(jīng)歷使他成為一名謹慎小心的開發(fā)人員,因為將一組卡片發(fā)送到學校的主機并得到返回結果,往往需要一周的往返時間。Wesley還將一個新聞類從打字機改變?yōu)镺sborne 1 CP/M計算機。他得到的有酬勞的工作是作為學生輔導員為四年級、五年級和六年級的學生及其父母家講授BASIC編程課程。
高中畢業(yè)后,Wesley以加利福尼亞校友學者的身份進入加州大學伯克利分校。他主修應用數(shù)學(計算機科學),輔修音樂(古典鋼琴),并以A級和B級的成績畢業(yè)。在學校期間,他先后使用過Pascal、Logo和C語言編寫過程序。他還參加了一個以錄像帶培訓和心理咨詢?yōu)樘厣妮o導課程。他的暑期實習項目包括以第4代編程語言編寫代碼,并編寫了一個“Getting Started”用戶手冊。幾年過后,他開始在加州大學圣巴拉拉分校繼續(xù)學習,并獲得了計算機科學(分布式系統(tǒng))的碩士學位。在此期間,他還講授C編程課程。他的一片以其碩士論文為基礎的論文在第29杰HICSS大會上被提名為論文,其隨后的一個論文版本刊登在新加坡大學High Performance Computing雜志上。
自從畢業(yè)之后,Wesley就投身于軟件行業(yè),編寫和出版了多本圖書,并且發(fā)表了數(shù)百篇會議報告和教程。此外還開發(fā)了針對公共企業(yè)和私有企業(yè)培訓的Python課程。Wesley的Python使用經(jīng)歷始于Python 1.4版本(當時Python剛剛起步),他使用Python設計了Yahoo!Mail拼寫檢查程序以及地址簿。他隨后成為Yahoo!People Search部門的首席工程師。在離開Yahoo!之后,他寫作了本書第1版,然后開始周游世界;貋碇,他使用Python編寫過許多程序,包括本地產(chǎn)品搜索程序、反垃圾郵件和防病毒郵件程序、Facebook游戲/應用,以及許多完全不同的其他東西,比如醫(yī)生用來進行脊柱骨折分析的軟件。
在其閑暇時間,Wesley喜歡彈鋼琴、打保齡球、打籃球、騎自行車、玩極限飛盤、打撲克、旅行,以及與家人共享人倫。他還是Tutor郵件列表和PyCon這兩個Python用戶組的志愿者。他還維護著艾倫帕森斯怪物項目目錄(Alan Parsons Project Monster Discography)。在本書寫作之時,Wesley是Google的開發(fā)大使,為其云產(chǎn)品背書。Wesley生活在硅谷,您可以通過@wescpy或plus.ly/wescpy來找到他。
Part I General Application Topics 1
第1部分 通用應用主題
Chapter 1 Regular Expressions 2
第1章 正則表達式
1.1 Introduction/Motivation / 引言/動機 3
1.2 Special Symbols and Characters / 特殊的符號和字符 6
1.3 Regexes and Python / 正則表達式和Python語言 16
1.4 Some Regex Examples 一些正則表達式示例 36
1.5 A Longer Regex Example更長的正則表達式示例 41
1.6 Exercises / 練習 48
Chapter 2 Network Programming 53
第2章 網(wǎng)絡編程
2.1 Introduction / 前言 54
2.2 What Is Client/Server Architecture? / 客戶端/服務器網(wǎng)絡編程 54
2.3 Sockets: Communication Endpoints / 套接字:通信端點 58
2.4 Network Programming in Python / Python中的網(wǎng)絡編程 61
2.5 *The SocketServer Module / SocketServer模塊 79
2.6 *Introduction to the Twisted Framework / *Twisted框架介紹 84
2.7 Related Modules / 相關模塊 88
2.8 Exercises / 練習 89
Chapter 3 Internet Client Programming 94
第3章 Internet客戶端編程
3.1 What Are Internet Clients? / 什么是Internet客戶端? 95
3.2 Transferring Files / 文件傳輸 96
3.3 Network News / 網(wǎng)絡新聞 104
3.4 E-Mail / 電子郵件 114
3.5 Related Modules / 相關模塊 146
3.6 Exercises / 練習 148
Chapter 4 Multithreaded Programming 156
第4章 多線程編程
4.1 Introduction/Motivation / 簡介/動機 157
4.2 Threads and Processes / 線程和進程 158
4.3 Threads and Python / 線程和Python 160
4.4 The thread Module / thread模塊 164
4.5 The threading Module / threading模塊 169
4.6 Comparing Single vs. Multithreaded Execution /
單線程和多線程執(zhí)行對比 180
4.7 Multithreading in Practice / 多線程實踐 182
4.8 Producer-Consumer Problem and the Queue/queue Module /
生產(chǎn)者-消費者問題和Queue/queue模塊 202
4.9 Alternative Considerations to Threads / 線程的替代方案 206
4.10 Related Modules / 相關模塊 209
4.11 Exercises / 練習 210
Chapter 5 GUI Programming 213
第5章 GUI編程
5.1 Introduction / 簡介 214
5.2 Tkinter and Python Programming / Tkinter和Python編程 216
5.3 Tkinter Examples / Tkinter示例 221
5.4 A Brief Tour of Other GUIs / 其他GUI簡介 236
5.5 Related Modules and Other GUIs / 相關模塊和其他GUI 247
5.6 Exercises / 練習 250
Chapter 6 Database Programming 253
第6章 數(shù)據(jù)庫編程
6.1 Introduction / 簡介 254
6.2 The Python DB-API / Python的DB-API 259
6.3 ORMs / 對象關系映射(ORM) 289
6.4 Non-Relational Databases / 非關系型數(shù)據(jù)庫 309
6.5 Related References / 相關文獻 316
6.6 Exercises / 練習 319
Chapter 7 *Programming Microsoft Office 324
第7章 *Microsoft Office編程
7.1 Introduction / 簡介 325
7.2 COM Client Programming with Python / 使用Python進行
COM客戶端編程 326
7.3 Introductory Examples / 入門示例 328
7.4 Intermediate Examples / 中級示例 338
7.5 Related Modules/Packages / 相關模塊/包 357
7.6 Exercises / 練習 357
Chapter 8 Extending Python 364
第8章 擴展Python
8.1 Introduction/Motivation / 簡介和動機 365
8.2 Extending Python by Writing Extensions /
編寫Python擴展 368
8.3 Related Topics / 相關主題 384
8.4 Exercises / 練習 388
Part II Web Development 389
第2部分 Web開發(fā)
Chapter 9 Web Clients and Servers 390
第9章 Web客戶端和服務器
9.1 Introduction / 簡介 391
9.2 Python Web Client Tools / Python Web客戶端工具 396
9.3 Web Clients / Web客戶端 410
9.4 Web (HTTP) Servers / Web(HTTP)服務器 428
9.5 Related Modules / 相關模塊 433
9.6 Exercises / Exercises 436
Chapter 10 Web Programming: CGI and WSGI 441
第10章 Web編程:CGI和WSGI
10.1 Introduction / 簡介 442
10.2 Helping Web Servers Process Client Data / 幫助Web服務
器處理客戶端數(shù)據(jù) 442
10.3 Building CGI Applications / 建立CGI應用程序 446
10.4 Using Unicode with CGI / 在CGI中使用Unicode 464
10.5 Advanced CGI / 高級CGI 466
10.6 Introduction to WSGI / WSGI簡介 478
10.7 Real-World Web Development / 真實世界的Web開發(fā) 487
10.8 Related Modules / 相關模塊 488
10.9 Exercises / 練習 490
Chapter 11 Web Frameworks: Django 493
第11章 Web框架:Django
11.1 Introduction / 簡介 494
11.2 Web Frameworks / Web框架 494
11.3 Introduction to Django / Django簡介 496
11.4 Projects and Apps / 項目和應用 501
11.5 Your “Hello World” Application (A Blog) / “Hello World”
應用(一個博客) 507
11.6 Creating a Model to Add Database Service / 創(chuàng)建一個
Model來添加數(shù)據(jù)庫服務 509
11.7 The Python Application Shell / Python Application Shell 514
11.8 The Django Administration App / Django管理應用 518
11.9 Creating the Blog’s User Interface /
創(chuàng)建Blog的用戶界面 527
11.10 Improving the Output / 改進輸出 537
11.11 Working with User Input / 處理用戶輸入 542
11.12 Forms and Model Forms / 表單和模型表單 546
11.13 More About Views / 視圖進階 551
11.14 *Look-and-Feel Improvements / *改善外觀 553
11.15 *Unit Testing / *單元測試 554
11.16 *An Intermediate Django App: The TweetApprover /
中級Django應用:TweetApprover 564
11.17 Resources / 資源 597
11.18 Conclusion / 總結 597
11.19 Exercises / 練習 598
Chapter 12 Cloud Computing: Google App Engine 604
第12章 云計算:Google App Engine
12.1 Introduction / 簡介 605
12.2 What Is Cloud Computing? / 什么是云計算? 605
12.3 The Sandbox and the App Engine SDK /
沙盒和App Engine SDK 612
12.4 Choosing an App Engine Framework /
選擇一個App Engine框架 617
12.5 Python 2.7 Support / Python 2.7支持 626
12.6 Comparisons to Django / 與Django比較 628
12.7 Morphing “Hello World” into a Simple Blog /
將“Hello World”改成一個簡單的博客 631
12.8 Adding Memcache Service / 添加Memcache服務 647
12.9 Static Files / 靜態(tài)文件 651
12.10 Adding Users Service / 添加用戶服務 652
12.11 Remote API Shell / 遠程API Shell 654
12.12 Lightning Round (with Python Code) /
問與答(Python實現(xiàn)) 656
12.13 Sending Instant Messages by Using XMPP /
使用XMPP發(fā)送即時消息 660
12.14 Processing Images / 處理圖片 662
12.15 Task Queues (Unscheduled Tasks) /
任務隊列(非定期任務) 663
12.16 Profiling with Appstats / 使用Appstats進行分析 670
12.17 The URLfetch Service / URLfetch服務 672
12.18 Lightning Round (without Python Code) /
問與答(沒有Python代碼) 673
12.19 Vendor Lock-In / 廠商鎖定 675
12.20 Resources / 資源 676
12.21 Conclusion / 總結 679
12.22 Exercises / 練習 680
Chapter 13 Web Services 684
第13章 Web服務
13.1 Introduction / 簡介 685
13.2 The Yahoo! Finance Stock Quote Server /
Yahoo!金融股票報價服務器 685
13.3 Microblogging with Twitter / Twitter微博 690
13.4 Exercises / 練習 707
Part III Supplemental/Experimental 713
第3部分 補充/實驗章節(jié)
Chapter 14 Text Processing 714
第14章 文本處理
14.1 Comma-Separated Values / 逗號分隔的值(CSV) 715
14.2 JavaScript Object Notation / JavaScript對象表示法(JSON) 719
14.3 Extensible Markup Language / 可擴展標記語言 724
14.4 References / 參考資料 738
14.5 Related Modules / 相關模塊 740
14.6 Exercises / 練習 740
Chapter 15 Miscellaneous 743
第15章 其他內(nèi)容
15.1 Jython / Jython 744
15.2 Google+ / Google+ 748
15.3 Exercises / 練習 759
Appendix A Answers to Selected Exercises 763
附錄A 部分練習參考答案
Appendix B Reference Tables 768
附錄B 參考表
Appendix C Python 3: The Evolution of a Programming Language 798
附錄C Python 3:一種編程語言的進化產(chǎn)物
Appendix D Python 3 Migration with 2.6+ 807
附錄D 利用Python 2.6+進行Python 3遷移