推荐编程书籍:Python核心编程(第3版) [Core Python Applications Programming(3rd Edition)],由人民邮电出版社2016-05-01月出版发行,本书编译以及作者信息 为:[美] Wesley Chun 著,孙波翔,李斌,李晗 译,此次为第3次发行, 国际标准书号为:9787115414779,品牌为异步图书, 这本书采用平装开本为16开,纸张采为胶版纸,全书共有660页字数万字,是本Python 编程相关非常不错的书。
此书内容摘要
《Python核心编程(第3版)》是经典畅销图书《Python核心编程(第二版)》的全新升级版本,总共分为3部分。第1部分为讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、Microsoft Office编程、扩展Python等内容。第2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、Django Web框架、云计算、高级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。《Python核心编程(第3版)》适合具有一定经验的Python开发人员阅读。关于此书作者
Wesley Chun,在高中阶段开始进入计算世界,当时他使用的是BASIC和6502汇编语言,系统是Commodore。随后开始在App IIe上使用Pascal语言,然后是再在穿孔卡片上使用ForTran语言。正在在穿孔卡片上使用ForTran的经历使他成为一名谨慎小心的开发人员,因为将一组卡片发送到学校的主机并得到返回结果,往往需要一周的往返时间。Wesley还将一个新闻类从打字机改变为Osborne 1 CP/M计算机。他得到的首份有酬劳的工作是作为学生辅导员为四年级、五年级和六年级的学生及其父母家讲授BASIC编程课程。高中毕业后,Wesley以加利福尼亚校友学者的身份进入加州大学伯克利分校。他主修应用数学(计算机科学),辅修音乐(古典钢琴),并以A级和B级的成绩毕业。在学校期间,他先后使用过Pascal、Logo和C语言编写过程序。他还参加了一个以录像带培训和心理咨询为特色的辅导课程。他的暑期实习项目包括以第4代编程语言编写代码,并编写了一个“Getting Started”用户手册。几年过后,他开始在加州大学圣巴拉拉分校继续学习,并获得了计算机科学(分布式系统)的硕士学位。在此期间,他还讲授C编程课程。他的一片以其硕士论文为基础的论文在第29杰HICSS大会上被提名为论文,其随后的一个论文版本刊登在新加坡大学High Performance Computing杂志上。自从毕业之后,Wesley就投身于软件行业,编写和出版了多本图书,并且发表了数百篇会议报告和教程。此外还开发了针对公共企业和私有企业培训的Python课程。Wesley的Python使用经历始于Python 1.4版本(当时Python刚刚起步),他使用Python设计了Yahoo!Mail拼写检查程序以及地址簿。他随后成为Yahoo!People Search部门的首席工程师。在离开Yahoo!之后,他写作了本书第1版,然后开始周游世界。回来之后,他使用Python编写过许多程序,包括本地产品搜索程序、反垃圾邮件和防病毒邮件程序、Facebook游戏/应用,以及许多完全不同的其他东西,比如医生用来进行脊柱骨折分析的软件。在其闲暇时间,Wesley喜欢弹钢琴、打保龄球、打篮球、骑自行车、玩极限飞盘、打扑克、旅行,以及与家人共享人伦。他还是Tutor邮件列表和PyCon这两个Python用户组的志愿者。他还维护着艾伦帕森斯怪物项目目录(Alan Parsons Project Monster Discography)。在本书写作之时,Wesley是Google的开发大使,为其云产品背书。Wesley生活在硅谷,您可以通过@wescpy或plus.ly/wescpy来找到他。编辑们的推荐
适读人群 :本书适合具有一定经验的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版) [Core Python Applications Programming(3rd Edition)]图书的目录
目录
第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.1re模块:核心函数和方法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.4Python中的网络编程48
2.4.1socket()模块函数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.9socket模块属性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.3Python和FTP77
3.2.4ftplib.FTP类的方法77
3.2.5交互式FTP示例78
3.2.6客户端FTP程序示例79
3.2.7FTP的其他内容80
3.3网络新闻81
3.3.1Usenet与新闻组81
3.3.2网络新闻传输协议82
3.3.3Python和NNTP83
3.3.4nntplib.NNTP类方法83
3.3.5交互式NNTP示例84
3.3.6客户端程序NNTP示例85
3.3.7NNTP的其他内容89
3.4电子邮件90
3.4.1电子邮件系统组件和协议90
3.4.2发送电子邮件91
3.4.3Python和SMTP92
3.4.4smtplib.SMTP类方法92
3.4.5交互式SMTP示例93
3.4.6SMTP的其他内容94
3.4.7接收电子邮件94
3.4.8POP和IMAP95
3.4.9Python和POP395
3.4.10交互式POP3示例96
3.4.11poplib.POP3类方法97
3.4.12客户端程序SMTP和POP3示例98
3.4.13Python和IMAP4100
3.4.14交互式IMAP4示例100
3.4.15imaplib.IMAP4类中的常用方法101
3.5实战102
3.5.1生成电子邮件102
3.5.2解析电子邮件104
3.5.3基于Web的云电子邮件服务105
3.5.4最佳实践:安全、重构106
3.5.5Yahoo! Mail108
3.5.6Gmail112
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线程和Python125
4.3.1全局解释器锁125
4.3.2退出线程126
4.3.3在Python中使用线程126
4.3.4不使用线程的情况126
4.3.5Python的threading模块128
4.4thread模块128
4.5threading模块132
4.5.1Thread类133
4.5.2threading模块的其他函数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.1subprocess模块163
4.9.2multiprocessing模块163
4.9.3concurrent.futures模块163
4.10相关模块165
4.11练习165
第5章GUI编程168
5.1简介169
5.1.1Tcl、Tk和Tkinter169
5.1.2安装和使用Tkinter170
5.1.3客户端/服务端架构170
5.2Tkinter和Python编程170
5.2.1Tkinter模块:添加Tk到应用中171
5.2.2GUI编程介绍171
5.2.3顶层窗口:Tkinter.Tk()173
5.2.4Tk控件173
5.3Tkinter示例174
5.3.1Label控件174
5.3.2Button控件175
5.3.3Label和Button控件175
5.3.4Label、Button和Scale控件176
5.3.5偏函数应用示例178
5.3.6中级Tkinter示例180
5.4其他GUI简介185
5.4.1Tk接口扩展(Tix)187
5.4.2Python MegaWidgets(PMW)188
5.4.3wxWidgets和wxPython188
5.4.4GTK+和PyGTK190
5.4.5Tile/Ttk192
5.5相关模块和其他GUI194
5.6练习196
第6章数据库编程198
6.1简介199
6.1.1持久化存储199
6.1.2数据库基本操作和SQL199
6.1.3数据库和Python201
6.2Python的DB-API203
6.2.1模块属性203
6.2.2Connection对象205
6.2.3Cursor对象206
6.2.4类型对象和构造函数207
6.2.5关系数据库209
6.2.6数据库和Python:适配器210
6.2.7使用数据库适配器的示例210
6.2.8数据库适配器示例应用215
6.3ORM226
6.3.1考虑对象,而不是SQL227
6.3.2Python和ORM227
6.3.3员工角色数据库示例228
6.3.4SQLAlchemy229
6.3.5SQLObject240
6.4非关系数据库245
6.4.1NoSQL介绍245
6.4.2MongoDB246
6.4.3PyMongo:MongoDB和Python246
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.1Excel259
7.3.2Word261
7.3.3PowerPoint262
7.3.4Outlook264
7.4中级示例266
7.4.1Excel266
7.4.2Outlook268
7.4.3PowerPoint273
7.4.4总结280
7.5相关模块/包281
7.6练习281
第8章扩展Python286
8.1简介和动机287
8.1.1Python扩展简介287
8.1.2什么情况下需要扩展Python288
8.1.3什么情况下不应该扩展Python288
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.1SWIG302
8.3.2Pyrex302
8.3.3Cython302
8.3.4Psyco303
8.3.5PyPy303
8.3.6嵌入Python304
8.4练习304
第2部分Web开发
第9章Web客户端和服务器306
9.1简介307
9.1.1Web应用:客户端/服务器计算307
9.1.2因特网308
9.2Python Web客户端工具310
9.2.1统一资源定位符310
9.2.2urlparse模块312
9.2.3urllib模块/包313
9.2.4使用urllib2 HTTP验证的示例317
9.2.5将HTTP验证示例移植到Python 3中319
9.3Web客户端322
9.3.1一个简单的Web爬虫/蜘蛛/机器人322
9.3.2解析Web页面328
9.3.3可编程的Web浏览333
9.4Web(HTTP)服务器336
9.5相关模块339
9.6练习341
第10章Web编程:CGI和WSGI345
10.1简介346
10.2帮助Web服务器处理客户端数据346
10.2.1CGI简介346
10.2.2CGI应用程序347
10.2.3cgi模块348
10.2.4cgitb模块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中使用Unicode362
10.5高级CGI364
10.5.1mulitipart表单提交和文件上传364
10.5.2多值字段364
10.5.3cookie365
10.5.4cookie和文件上传365
10.6WSGI简介373
10.6.1动机(替代CGI)373
10.6.2服务器集成374
10.6.3外部进程374
10.6.4WSGI简介375
10.6.5WSGI服务器376
10.6.6参考服务器377
10.6.7WSGI应用示例378
10.6.8中间件及封装WSGI应用378
10.6.9在Python 3中使用WSGI379
10.7现实世界中的Web开发380
10.8相关模块380
10.9练习381
第11章Web框架:Django384
第12章云计算:Google App Engine470
第13章Web服务530
第3部分补充/实验章节
第14章文本处理553
第15章其他内容577
附录A部分练习参考答案593
附录B参考表597
B.1Python关键字597
B.2Python标准操作符和函数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.12Python异常608
B.13类的特殊方法610
B.14Python操作符汇总612
附录CPython 3:一种编程语言进化的产物614
C.1为何Python在变化614
C.2都发生了哪些变化615
C.2.1print变成了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.12to3工具619
C.3.2Python 2.6+620
C.4结论620
C.5参考资料620
附录D利用Python 2.6+向Python 3迁移622
D.1Python 3:Python的下一代622
D.2整数623
D.2.1单整数类型624
D.2.2新型二进制和改进的八进制字符624
D.2.3经典除法或真除法625
D.3内置函数626
D.3.1print语句或print()函数626
D.3.2reduce()转移到了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。Core Python系列图书的目标不只是教会开发人员Python语言,我们还希望各位读者能够形成足够的知识库,从而能够开发任何应用领域的软件。在我们其他的Core Python系列图书中(Core Python Programming和Core Python Language Fundamentals),我们不仅向读者讲授Python语言的语法,还希望读者能够深入掌握Python的运行机制。我们相信,在具备了这些知识之后,无论您是Python语言的初学者还是具有一定经验的老兵,您都能够开发出更为高效的Python应用程序。在学完任何其他入门类的Python图书之后,您可能觉得已经掌握了Python而且还觉得学到不错,并为此感到自豪。通过完成大量练习之后,您将会对自己新掌握的Python编程技能拥有更多信心。但是,您可能仍然会有这样的疑问,“现在该怎么办?我能用Python编写哪种类型的应用程序呢?”或许您是为了一个相当小众的工作项目而学习使用Python,您可能会考虑“我还能用Python写点其他的么?”。关于本书在本书中,您将会用到从其他地方学习到的所有Python知识,并开发出新的技能,从而构建自己的工具箱。借助于该工具箱,您能够使用Python开发各种类型的应用程序。这些高级主题章节是各种不同主题的简介或者“速潜”(quick dives)。如果您越到了这些章节中涵盖的特定应用开发领域,您将会发现它们不但给您指出了正确的方向,还包含了更多的信息。但是不要期待有一个深入的解决方案,因为这有悖于本书的初衷——提供更为宽广的解决方案。与所有其他Core Python图书一样,本书同样包含了许多案例,您可以在计算机上进行尝试。为了牢固掌握概念,您也会在每章后发现有趣、有挑战性的练习。这些入门级和中级难度的练习旨在测试您的知识掌握情况,提升您的Python技能。毕竟,没有什么可以替代实践经验。我们相信,您不但能够学到很多Python编程技能,同时也能在尽可能短的时间内迅速掌握它们。对我们来讲,扩展Python技能的佳方式就是动手练习,因此您会发现这些练习是本书的一个大优势。它们可以测试您对每章主题和定义的掌握情况,以及激励您尽可能多的动手编程。除了自己编写应用程序之外,没有其他方法可以更有效地提升您的编程技能。您需要解决入门级、中级难度和高级难度的编程问题。而且您应该需要编写一个大型的应用程序(这也是很多读者想要在本书中看到的),而不是采用一些脚本来实现。坦白说,您可能做的没有那么好,但是通过亲自动手实践,您的收获会更大。附录A给出了每章中某些问题的答案。附录B中包含了一些有用的参考表。感谢所有读者的反馈和鼓励,你们是我写作这些图书的动力。希望你们能继续给我发送反馈信息,并促使本书第4版尽快问世,而且其质量优于之前所有版本。本书读者对象如果您之前了解Python,并且希望进一步了解Python,同时希望扩展自己的应用程序开发技能,您就是本书的读者对象。Python在众多领域中都可见其身影,包括工程领域、信息技术领域、科学领域、商业和娱乐领域等。这意味着Python用户(和本书的读者)列表包括但不限于下述人员: 软件工程师; 硬件设计/CAD工程师; QA/测试和自动化框架开发人员; IS/IT/系统和网络管理员; 科学家和数学家; 技术或项目管理人员; 多媒体或音频/视觉工程师; SCM或发布工程师; Web大师或内容管理人员; 客户/技术支持工程师; 数据库工程师和管理员; 研发工程师; 软件集成和专业服务人员; 大学及中学教育工作者; Web服务工程师; 金融软件工程师; 其他人员。使用Python的一些著名公司包括Google、Yahoo!、NASA、卢卡斯工业光魔公司、Red Hat、Zope、迪斯尼、皮克斯和梦工厂。作者与Python大约10多年以前,我在一家名为Four11的公司发现了Python。当时,该公司有一个主要的产品——Four11.com White Page目录服务。它们使用Python来说设计该产品的下一代:Rocketmail Web E-mail服务,该服务终演变为今天的Yahoo!Mail。学习Python并加入初的Yahoo!Mail工程团队是一件相当有趣的事情。我帮助重新设计了地址簿和拼写检查程序。在当时,Python也成为其他Yahoo!站点的一部分,其中包括People Search、Yellow Pages、Maps和Driving Directions,等等等等。事实上,我当时是People Search的首席工程师。尽管在当时Python对我而言是全新的,但是它也很容易学习——要比我过去学习的其他语言都要简单。在当时,Python教程的缺乏迫使我使用Library Reference和Quick Reference Guide作为主要的学习工具,而这也是促使我写作本书的一个驱动力。从我在Yahoo!的日子开始,我能够以各种有趣的方式在随后的工作中使用Python。在任何情况下,我都能使用Python的强大功能来及时地解决遇到的问题。我也开发了多个Python课程,并使用本书来讲授那些类——完全吃了自己的狗食(truly eating my own dogfood)。Core Python图书不仅是卓越的Python学习设备,它们也是用来讲解Python的佳工具。作为一名工程师,我知道学习、理解和应用一种新技术所需要的东西。作为一名专业讲师,我也知道为客户提供有效的会话(session)所需要的是什么。这些图书提供了必要的经验,能够让你与真实世界进行类比,也提供了您无法从“纯粹的培训讲师”或“纯粹的图书作者”那里获得的提示。对本书写作风格的期待:以讲解技术为主,同时容易阅读不同于严格的“初学者”图书或者纯粹的“重口味”计算机科学参考图书,我过去的教学经验告诉我,一本易于阅读同时又面向技术的图书应该服务于这样的一个目的,即能够让人尽可能迅速地掌握Python,以便能将其应用到十万火急的任务上来。我们在介绍概念时会辅之以合适的案例,以加速学习过程。在每章后你都会发现大量的练习,它们的目的是用来夯实你对书中概念和理念的理解。能够与Bruce Eckel的写作风格相提并论,我们很激动也很谦卑(见本书第1版的评论,地址为http://corepython.com)。本书并非一本枯燥的大学教程,我们的目标是营造一个与您交谈的环境,就像您是在参加我的一个广受好评的Python培训课程一样。作为一名终身学习的学生,我不断地因材施教,告诉您需要学习什么才能快速、彻底地掌握Python的概念。您也将发现,可以快速容易的阅读本书,而且不会错失任何技术细节。作为一名工程师,我知道应该怎样做才能向您讲授Python中的概念。作为一名教师,我可以将技术细节全部打散,然后转换成一种易于理解和迅速掌握的语言。您将从我的写作风格和教学风格中获益,更重要的是,您会喜欢上用Python来编程。因此,您也将注意到,尽管我是本书唯一的作者,但是我使用的是“第三人称”的写作结构,也就是说,我使用了诸如“我们”这样的一些废话,原因是在学习本书的过程中,我们是一起的,共同朝着扩展Python编程技能的目标而努力。关于本书第3版在本书第1版刚问世时,Python刚发布了2.0版本。从那时起,Python语言发生了重大的改进,使得Python语言被越来越多的人接受,其使用率也大幅提升。Python编程语言大获成功。Python语言的缺陷已被删除,而且有新的特性不断加入,这将全世界Python开发人员的能力和编程修养提升到了一个新的水平。本书第2版于2006年问世,当时也是Python的鼎盛时期,它的版本是迄今为止为流行的2.5版本。本书第2版问世之后好评如潮,其销量超过了第1版。在那期间,Python本身也赢得了无数荣誉,包括下面这些。 Tiobe(www.tiobe.com)—年度编程语言(2007年、2010年) LinuxJournal(linuxjournal.com)—喜欢的编程语言(2009年~2011年)—喜欢的脚本语言(2006年~2008年、2010年、2011年) LinuxQuestions.org会员选择奖—年度编程语言(2007年~2010年)这些奖项和荣誉推动着Python进一步发展。现在,Python已经进入了下一代:Python 3。同样,Core Python Programming也在向着其“第三代”前进。我非常高兴Prentice Hall能够让我写作本书第3版。由于Python 3.x版本能够后向兼容Python1 和Python 2,因此Python 3.x还需要一段时间,才能被去业界全面采用和集成进来。我们很乐意引导您经历这个过渡。本书第3版的代码也可以适用于Python 2和Python 3(视情况而定——并非所有代码都移植了过来)。在代码移植时,我们还会讨论各种工具和做法。Python 3.x版本带来的挑战延续着对Python编程语言进行迭代和改进的趋势,要移除Python语言后的重大缺陷还有很长的路要走,而且移除重大缺陷在不断演变的Python语言中也是一个相当大的飞跃。与之相似,本书的结构也做出了相当重大的转变。限于篇幅和范围,已有的Core Python Programming无法处理第3版中引入的所有新内容。因此,Prentice Hall和我想到了一个好方法来向前推进本书,即从逻辑上将其拆分为两部分,其中一部分表示Python核心语言主题,另一部分表示高级应用主题,并由此将书拆分为两卷。而您手头上当前拿着的这本书是Core Python Programming第3版的第2部分。好消息是由于第2部分的内容已经相当完整齐备,因此第1部分的内容也就没有存在的必要了。要阅读本书,我们建议读者能够拥有Python中级编程经验。如果您近已经学过Python,而且能够相当轻松地驾驭它,或者是您已经具备Python技能,但是希望能进一步提升其技能,那么您算是找对图书了。Core Python Programming的读者都知道,我的主要目标是以一种全面的方式来讲解Python语言的本质,而非仅仅是其语法(学习Python的语法也不需要一本书,对吧!)。在知道了Python的工作机制之后——包括数据对象和内存管理之间的关系——你将成为一名更高效的Python程序员。而这是第1部分(即Core Python Language Fundamentals)要做的工作。与本书所有版本一样,我会继续更新图书的Web站点以及博客,以确保无论您移植到哪个新发布的Python版本,都可以让本书做到与时俱进。对之前的读者来说,当前版本的图书新增了下述主题: 基于Web的E-mail示例(第3章); 使用Tile/Ttk(第5章); 使用MongoDB(第6章); 更重要的Outlook和PowerPoint示例(第7章); Web服务器网关接口(WSGI)(第10章); 使用Twitter(第13章); 使用Google+(第15章)。此外,我们还在当前版本中添加了3个全新的章节,分别是第11章、第12章和第14章。这些章节代表着经常使用Python进行应用开发的一些新领域或正在进行的领域。所有的现有章节已经进行了全面革新,并更新到Python的新版本,同时还包含了一些新内容。通过随后的“章节指南”部分,您可以了解到本书每部分要讲解的内容。章节指南本书分为3部分。其中第1部分占据了本书2/3的篇幅,它讲解了应用开发工具箱中(当然,Python是关注重点)“核心”成员的解决方案。第2部分讲解了与Web编程相关的各种主题。第3部分是补充部分,它提供了一些仍然在开发过程中的实验章节,在本书后续版本中, 这些章节有望成为独立的章节。本书提供了一些高级主题,以向读者展示Python可以用来开发什么应用程序。值得我们高兴的是,我们起码可以向您提供Python开发中许多关键领域的入门知识,其中包括之前版本中提到的一些主题。下面是本书每章的内容简介。第1部分:通用应用主题第1章:正则表达式正则表达式是一种功能强大的工具,可以用来进行模式匹配、提取、查找和替换功能。第2章:网络编程如今许多应用都是面向网络的。在本章,您将使用TCP/IP和UDP/IP来创建客户端和服务器,同时学习SocketServer和Twisted等知识。第3章:Internet客户端编程如今在用的大多数Internet协议都是使用socket开发的。在本章,我们将来探究一些用来构建Internet协议客户端的高级库。我们重点关注的是FTP、Usenet消息协议(NNTP)以及各种E-mail协议(SMTP、POP3、IMAP4)。第4章:多线程编程多线程编程是一种通过引入并发来提升多种应用程序执行性能的方式。本章通过解释概念并展示正确创建Python多线程应用程序的方法、什么是佳用例来讲解如何在Python中实施线程。第5章:GUI编程Kinter(在Python 3中被重名为tkinter)以Tk图形工具箱为基础,是Python中的默认GUI开发库。本章通过演示如何创建简单的GUI应用来向读者介绍Tkinter。一种佳的学习方式是复制,并在某些应用的顶层之上进行创建,这样可以很快上手。本章后简要讨论了其他图形库,比如Tix、Pmw、wxPython、PyGTK和Ttk/Tile。第6章:数据库编程Python也有助于简化数据库编程。本章首先回顾一些基本的概念,然后介绍Python数据库应用编程接口(DB-API)。随后介绍如何使用Python连接到一个关系数据库,并执行查询和操作。如果你更喜欢使用了结构化查询语言(SQL)的放手管理方法(hands-off approach),而且只是想在无需考虑底层数据库层的情况下处理对象,则可以使用对象-关系映射。后,本章以MongoDB作为我们的NoSQL案例介绍了非关系数据库。第7章:Microsoft Office编程无论喜欢与否,我们都生活在一个不得不和Microsoft Windows PC打交道的世界。我们可能偶尔与它们打交道,也可能每天都要接触到它们,但是哪种情况,都可以使用Python的强大功能来让生活更轻松一些。在本章,我们将探究使用Python来编写COM客户端,以控制并与Office应用程序(比如Word、Excel、PowerPoint和Outlook)进行通信。尽管本章在本书之前版本中是实验章节,但是我们很高兴能够为其添加足够的内容,使其单独成章。第8章:扩展Python前面我们提到,能够重用代码并对语言进行扩展将具有相当强大的功能。在纯Python中,这些扩展是模块和包,但是您也可以使用C/C++、C#或Java来开发底层的代码。这些扩展能够以无缝方式与Python相接。以低级编程语言来编写自己的扩展可以提升性能,并增强安全性(因为源代码没有必要泄露)。本章将讲解使用C语言来开发扩展的整个过程。第2部分:Web开发第9章:Web客户端和服务器本章将扩展第2章讨论的客户端/服务器架构,我们将这一概念应用到Web上。在本章,我们不但探究客户端,还将探究用来解析Web内容的各种Web客户端工具。后,本章介绍了如何使用Python来定制自己的Web服务器。第10章:Web编程:CGI和WSGIWeb服务器的主要工作是接受客户端的请求,然后返回结果。但时服务器如何获得客户端的请求数据呢?由于服务器只擅长返回结果,因此通常没有获取数据的能力或逻辑,因此这个工作需要在他处完成。CGI给了服务器生成另外一个程序的能力,让这个程序来进行数据处理(长久以来也是一直这么做的),但是该程序不具备扩展性,因此并不会在实践中使用。但是,无论使用的是什么框架,这一概念仍然适用,因此我们将用一章的篇幅来学习CGI。您还将在本章学到WSGI如何通过通用编程接口来为应用开发人员提供帮助。此外,您将还学到,当框架开发人员需要在一端连接Web服务器,而应用程序的代码放在另外一端时,WSGI如何来提供帮助,以便应用开发人员能够在无需担心执行平台的情况下编写代码。第11章:Web框架:DjangoPython有很多Web框架,其中的Django是其中为流行的一个。本章将介绍这个框架,然后介绍如何编写简单的Web应用。在具备了这些知识后,您可以自行研究其他Web框架。第12章:云计算:Google App Engine云计算在IT业界引发了轰动。尽管像Amazon的AWS这样的基础设施服务和Gmail、Yahoo!Mail这样的在线应用等在当今世界中更为常见,但是有很多平台凭借其强大的功能,成为这些服务的替代者。这些平台充分利用了基础设施,无需用户介入,而且要比云软件具有更多的灵活性,原因是您可以控制自行控制应用及其代码。本章将全面介绍使用Python的个平台服务——Google App Egnine。在掌握了本章的内容后,您可以本章介绍的其他类似服务。第13章:Web服务在本章,我们将学习Web上的高级服务(使用HTTP)。我们先来看一个较为古老的服务(Yahoo!Finance),然后再看一个较新的服务(Twitter)。你将学到如何使用Python以及前文学到的知识来与这些服务进行交互。第3部分:补充/实验章节第14章:文本处理这是本书的个补充章节,它介绍了使用Python来处理文本的方法。本章先介绍了CSV,然后是JSON,后是XML。在本章后一节,我们将前面学到的客户端/服务器知识结合到XML中,以查看如何使用XML-RPC来创建在线的远程过程调用(RPC)。第15章:其他内容本章包含了一些附加材料,这些内容可能会在本书下一版中成为单独的章节。本章讨论的主题包含Java/Jython和Google+。关于此书评价
“本书简洁而不失其技术深度,内容丰富全面,历史资料翔实齐全,这让本书成为学习Python的完美教程。本书易于阅读,以极简的文字介绍了复杂的案例,同时涵盖了其他同类图书中很少涵盖的历史参考资料。简而言之,本书棒极了!”——Gloria. W“期待已久的Core Python Programming第2版已经证明了本书确实值得期待——它深度与广度齐备,其中囊括的有用练习可以帮助读者掌握Python并付之于实践。”——Alex Martelli,Python in a Nutshell作者兼Python Cookbook编辑
“Wesley Chun的Core Python Programming一书好评如潮,而且它也证明它配得上所有的好评。我想该书是当前学习Python的图书。在市面上众多的Python图书中,我觉得Chun的这本书是好的,因此向大家强烈推荐本书。”——David Mertz博士,IBM DeveloperWorks
“在过去多年,我一直在从事Python的研究,发现本书获得了大量的正面评价。这些评价证实了这样一个观点,即Core Python Programming被认为是Python入门读物事实上的标准。”——Richard Ozaki,Lockheed Martin公司
“终于,一本既可以作为Python教程又可以作为Python编程语言参考的图书问世!”——Michael Baxter,Linux Journal
“本书写作相当精良。这是我遇到的清晰、友好的Python图书,它在一个广阔的背景中介绍了Python。它仔细、深入地剖析了一些重要的Python主题,而且读者无需大量的相关经验也能看懂。与所有其他Python入门类图书不同的是,它不会用隐晦、难以理解的文字来折磨读者,而是始终立足于帮助读者牢固掌握Python的语法和结构。”——http://python.org bookstore Web site
“如果我只能有一本Python图书的话,那它肯定是Wesley Chun著作的Core Python Programming。本书成功地涵盖了Python的多个主题,其详细程度远甚于Learning Python一书,而且涵盖的主题也远非Python核心语言这么简单。如果你只打算购买一本Python图书,我强烈向您推荐本书。你不但会爱上本书,也会爱上本书中包含的程序员的讽刺性智慧。重要的是,您将学会Python。更更重要的是,您会发现本书会在您每日的Python编程生活中提供各种帮助。干的不错,Chun先生!”——Ron Stephens,Python Learning Foundation
“我认为编程初学者的语言是Python,毋庸置疑!我喜欢的图书是Core Python Programming。”——s003apr,MP3Car.com Forums
“就我个人而言,我相当喜欢Pyhon。它易于学习、非常直观、相当灵活,而且执行速度也相当快。在Windows世界中,Python虽然只是刚崭露头角,但是因为越来越多的人们发现了它,因此选择从Python起步可以获得大量的支持。要学习Python,我选择从Wesley Chun的这本Core Python Programming起步。”——Bill Boswell,MCSE,Microsoft Certified Professional Magazine Online
“如果你是通过图书来学习编程,我向您推荐Core Python Programming,它是目前为止我发现的Python图书。我也是一个Python新兵,但是在3个月之后,我就可以在项目中实施Python了(自动处理MSOffice、SQL DB Stuff等)。”——ptonman,Dev Shed Forums
“Python是一种美丽的语言。它易于学习、跨平台,而且能够良好运行。它已经实现了Java一直想要实现的很多技术目标。对Python的一句话描述是‘所有其他语言是随着时间发生演进变化,但是Python则是设计出来的。’而且Python设计的相当不错。虽然现在市面上有大量的Python图书,但是目前为止我遇到的好的一本是Core Python Programming。”——Chris Timmons,C. R. Timmons Consulting
“如果你喜欢Prentice Hall出版社Core系列图书,你需要考虑的另一本写作精良的图书是Core Python Programming。它将其他Python图书中很少涵盖的许多实用主题进行了事无巨细的剖析。”——Mitchell L. Model, MLM Consulting
书摘内容
暂无.Python核心编程(第3版) [Core Python Applications Programming(3rd Edition)]最新最全的试读、书评、目录、简介信息由个人博客整理提供。
本文地址:https://my.lmcjl.com/book/347
版权声明:个人博客原创文章,转载请注明出处和网址。
,欢迎加入。
本文链接:https://my.lmcjl.com/post/5055.html
4 评论