猜你喜欢
Python核心编程(第3版)

Python核心编程(第3版)

书籍作者:Wesley Chun ISBN:9787115414779
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8758
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
《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。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和WSGI  Web服务器的主要工作是接受客户端的请求,然后返回结果。但时服务器如何获得客户端的请求数据呢?由于服务器只擅长返回结果,因此通常没有获取数据的能力或逻辑,因此这个工作需要在他处完成。CGI给了服务器生成另外一个程序的能力,让这个程序来进行数据处理(长久以来也是一直这么做的),但是该程序不具备扩展性,因此并不会在实践中使用。但是,无论使用的是什么框架,这一概念仍然适用,因此我们将用一章的篇幅来学习CGI。您还将在本章学到WSGI如何通过通用编程接口来为应用开发人员提供帮助。此外,您将还学到,当框架开发人员需要在一端连接Web服务器,而应用程序的代码放在另外一端时,WSGI如何来提供帮助,以便应用开发人员能够在无需担心执行平台的情况下编写代码。  第11章:Web框架:Django  Python有很多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+。
目录

目录

第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


短评

可以一看的进阶书,译名有毒,我买的中文第一次印刷版本,有非常多的勘误,甚至示例代码报错。

2016-08-23

感觉就像领着你在人家房子外面看着转了一圈最后连门也没进去

2016-08-22

非常适合有一定基础的同学

2016-06-20

第一感觉就是挺厚的,不知道作者为什么非要把Python 2.x和3.x的代码都贴出来(怪不得这么厚?)。书中并没有Python语言入门的内容,没学过Python的小白要慎重些。虽然有点厚的不合理,但还是清楚的介绍了不少内容,壕的可以考虑买

2016-11-01

比较基础

2016-12-14

Python核心编程(第3版)的书评

译者名单

Python核心编程2ed 中文翻译工程成员自述 行者无疆 http://code.google.com/p/openbookproject/wiki/CorePyZhPeople ......

2008-10-10 15:40

啃完本书,我觉得是本好书,值得推荐!

第一眼看到这本书的时候,天哪,又是一本砖头一样的书,顿时信心少了一半,随便翻了下书,对于当时的我来说,过于深,此书并不太适合初学者来看,尤其我这种基础差的人。而且,当初看了豆瓣的评价,立马打.........

2011-07-21 18:13

一本过渡的好书

十分推荐的一本书。本书的内容实际上就是大致介绍了一下部分python标准库里的模块和一些第三方模块,并且主要是网络方向。 书中讲解的都不深,可以说只是对这些模块做了简单介绍并给出一些小例子(基本上每个模块.........

2013-03-20 13:11

对你有用,那就够了

刚开始接触Python的时候看过几本用于入门的纸质书籍,比如《Python基础教程》、《A Byte of Python》,也在网路上上看了几个教程,比如w3cschool的《Python 基础教程》、《A Byte of Python》的译文《简明 Python.........

2015-02-26 21:46

我对这本书很失望

冲着CPyUG的名气买了这本书,但是这本书的质量却令我很失望。 首先,这本书的原书的勘误表就有够长的(http://starship.python.net/crew/wesc/cpp/errata2.htm 看看原书有多少错误!)。翻译时却几乎没有参考勘误.........

2009-04-13 12:19

烂书一本,行文拖沓,语言费解,挂一漏万!

我看的中文版,感觉太垃圾了,看到第十三章实在看不下去了。也不知道是不是翻译的问题,只能算是错别字少,行文拖沓,语言费解,挂一漏万。13章专门讲类的,居然只能在第一小节概述里面的示范代码中能看出如何实.........

2014-12-24 21:49

标签
python,Python,编程,程序设计,计算机科学,软件开发,进阶,計算機
产品特色