Python编程金典 pdf版(49M) PDF 免费下载

欢迎进入Python 编程世界!Python 是一种强大的常规用途程序语言,尤其适合开发基于Internet 和Web 的、数据库密集型的、多层的客户机/服务器系统。本书讲解了大量先进的计算技术,它是我们的第二本有关开放源码程序语言的参考书。①在我们编写本书时,Python 2.2 刚刚发布。为此,我们进行了艰苦的工作,以便将Python 2.2 的功能合并到本书中。附录B 将讲解Python 2.2 的其他一些特性。

  希望读者通过本书获取有用的信息,既能感到适度的挑战,又能从中获得无穷乐趣!本书写作过程令人愉快。Deitel & Associates 的团队长期致力于程序语言教科书和e-Learning素材的开发。我们涉足几乎每一种主流程序语言。在编写本书过程中,我们也注意到一些特别的地方。我们的开发者和撰稿人对Python 给与高度评价。它强大的功能、高度的可靠性和编码的简洁性,给人留下深刻印象。他们喜欢Python能让他们运用自如。他们喜欢这种开发源码的软件开发世界,为Python 而开发的模块正在与日俱增。

  无论老师、学生、有经验的专业程序员还是新手,都能通过本书汲取有益的知识。Python 是一种出色的程序语言,也是开发具有工业强度的商业应用程序的优秀语言。对于学生和新手级程序员,通过前几章的学习,可打下良好的基础。我们讨论了许多程序开发模型,包括结构化编程、基于对象的编程、面向对象的编程以及事件驱动的编程等。对于专业开发人员,我们则选用Python 真正强大的功能来创建实用的、进行了完全实现的系统。这部分的重点在于第23 章的案例分析,它详细讲解了如何构建一个真正的网上书店。

本书涉及了所有标准主题,包括数据类型、运算符、控制结构、算术运算、字符串、决策、算法开发、函数和随机数/模拟等等。

  本书的特色之一是全面讲解了数据结构,书中首先介绍了Python 的内建结构–列表、元组和字典。之后,还对包括队列、堆栈、链表和二叉树在内的传统数据结构进行了深入讲解。

  本书强调了Internet 和Web 开发–我们首先介绍了CGI,并在随后几章用它来构建基于Web 的应用程序。我们用整章篇幅(第25 章)介绍了PSP(Python Server Pages,Python 服务器页),并利用它改编了第16 章介绍的一个论坛案例。

本书用3章篇幅详细介绍了面向对象编程,涉及的主题包括类、封装、对象、属性、方法、构造函数、析构函数、自定义、运算符重载、继承、基类、派生类和多态性等等。

  本书透彻讲解了如何用Tkinter 进行GUI(Graphical User Interface,图形用户界面)编程,涉及的主题包括事件驱动编程、标签、按钮、复选框、单选钮、鼠标事件处理、键盘事件处理、布局管理器以及一系列高级GUI 功能,利用它们可创建和处理菜单和滚动组件。

  我们讨论了如何利用异常处理使程序更"健壮"。Python 强大的字符串处理功能在此得到了深入讲解。至于正则表达式的主题,虽然它不易于理解,但由于它功能强大,所以我们也进行了详尽的解释。我们讨论了文件处理、顺序访问文件、随机访问文件(以及shelve 模块),同时还开发了一个事务处理程序,论述了对象序列化的问题。通过讨论文件处理,为后来的Python 数据库编程奠定了良好的基础,后者通过Python 的DB-API(Database Application Programming Interface,数据库应用程序编程接口)来实现。我们讨论了关系数据库模型,并概述了SQL(Structured Query Language,结构化查询语言)。许多人都熟悉HTML,但很少有人知道万维网协会(W3C)–HTML 技术的创建者–已声称HTML已成为"过去",不会继续开发它。全世界正逐步过渡到XML(eXtensible Markup Language,可扩展标记语言)。在这期间,Web 开发将采用一种名为XHTML 的过渡技术。本书许多应用程序都将采用XHTML。至于XML的常规主题,将采用一整章(即第15 章)的篇幅来介绍它。对如今的Web 应用程序开发者来说,这是必须掌握的。然后,我们将另起一章(第16 章),专门讲解Python 的XML处理技术,并提供一个详细的案例分析,运用CGI 和XML来构建论坛。

  计算机应用程序通常能很好地一次做一件事。今天,较高级的应用程序需要同时做许多事,在计算机领域内,我们更喜欢将其称为"并发性"。我们会分别用整章的篇幅来讲解进程管理(第18 章)和多线程处理(第19 章)。Python 程序员利用这些技术,可做到以前只有系统程序员在操作系统的级别上才能做到的事情。

  我们讨论了联网问题,包括Web 使用的HTTP 协议,使用流套接字进行的客户机/服务器联网,使用数据文报进行的无连接的客户机/服务器交互,另外还使用多线程服务器,实现了一个客户机/服务器的Tic-Tac-Toe(即三连棋)游戏。

  我们全面讨论了常见的计算机安全问题,并讲解了Python 特有的一些安全问题。讨论了如何使用模块Bastion 在一个限制环境中执行恶意代码。另外,还演示了如何用模块rotor 对文本进行加密。作为本书的一个重点,第23 章展示了一个详尽的案例分析,它使用前几章和本书附录讨论的许多技术来实现一个电子商务网上书店。我们介绍了HTTP 会话和会话跟踪技术,并将这个书店构建成一个多层的客户机/服务器系统,它有能力处理大批量的客户,其中包括标准Web 浏览器(使用XHTML)和无线客户(使用WML和XHTML Basic)。

  我们用整章(第24 章)的篇幅讲解多媒体所涉及的主题。使用3D 图形例子介绍了PyOpenGL,并介绍了3D 环境Alice,它提供的对象可通过Python 脚本"动"起来。我们通过设计一个CD 播放器,一个影片播放器和一个太空船游戏,演示了pygame。

  认识到服务器端开发的重要性之后,我们将展示PSP(Python 服务器页),它可取代CGI。另外,我们将论坛案例从CGI 技术转换成了PSP。
  本书提供了两个附录,均与Python 有关。其中,附录A 介绍了Python 开发环境,附录B 介绍了Python 2.2 的其他特点,其中还讨论了迭代器、生成器和嵌套作用域。
  阅读本书的过程中,不管遇到什么问题,都请联系deitel@deitel.com,来信必复。另外,请经常访问我们的网站www.deitel.com,并订阅免费的The Deitel BUZZ 电子刊物。我们会通过网站及电子刊物介绍最新的Python 信息以及我们推出的其他产品和服务。

  本书具有许多特色,包括:
  * 代码清洗(code washing)。这是我们自己创造的一个术语,是指对程序进行全面格式化,为其精心添加注释,并使其具有一个开放布局。程序代码组合成小的、结构清晰的块,这大大增强了可读性–这正是我们要达到的一个重要目标,尤其是全书总共含有14 930 行代码!
  * 面向对象编程。面向对象编程是目前广泛采用的一种编程技术,用于开发健壮的、可重用的软件。Python 被设计成一种面向对象语言,本书全面讨论了Python 的各种面向对象特性。数据完整性是Python 中尤其要关注的一个问题。所有Python 类数据默认都是公共的,但几种技术可用于确保数据完整性。我们用3 章篇幅详细讨论了这些问题以及其他面向对象的主题。其中,第7 章介绍如何创建类,并讨论了公共、私有和get/set 方法。第8 章解释如何使创建的类具有自定义行为,比如运算符重载、字符串表示、列表和字典行为以及用于自定义属性访问的方法等。第9 章对这些概念进行了进一步扩展,我们讨论了如何创建新类,令其"吸收"现有类的功能。通过这一章的学习,读者会熟悉一些关键概念,比如多态性、抽象类和具体类等,利用它们可更方便地处理一个继承层次结构中的对象。本章最后讨论了Python 2.2提供的其他面向对象能力,其中包括"属性"(Properties)。
  * 数据库应用程序编程接口。数据库存储着大量信息,个人和单位需要访问它们以处理各种事务。数据库管理系统(DBMS)供单位和个人用来操纵数据库–Python 提供了相应的数据库应用程序编程接口(DB-API),以访问数据库管理系统
  * XML。可扩展标记语言(XML)在软件开发领域和电子商务社区获得了蓬勃发展。由于XML是一种与平台无关的技术,用于描述数据和创建标记语言,所以XML 的数据移植性能与Python 的可移植应用程序和服务较好地集成在一起。第15 章介绍了XML,我们讨论了基本的XML标记和技术,比如DTD 和Schema,它们用于校验XML文档内容。第16 章则解释了如何用文档对象模型(Document Object Model,DOM)来处理XML文档,以及如何通过可扩展样式表语言转换(eXtensible Stylesheet Language Transformation,XSLT),将XML文档转换成其他文档类型。本章还介绍了DOM 的一种替代物,名为Simple API for XML(简称SAX),它充当用于XML的一个基于事件的API。
  * 公共网关接口(CGI)和Python 服务器页(PSP)。因特网和万维网已深入人们的日常生活,交互式网站是商业成功的关键。第6 章和第25 章介绍了服务器端Web 技术,开发者利用它们可创建交互式的、基于Web 的应用程序。第23 章提供了一个详细的案例分析,它综合运用MySQL、XML、XHTML、XHTML Basic、层叠样式表(CSS)、XSLT、CGI 和无线标记语言(Wireless Markup Language,WML)来构建一个动态电子商务应用程序。 本书演示了一个XML论坛的两种实现方式,用户可将自己的文章张贴到在线论坛。第16 章使用的是CGI,第25 章使用的则是PSP。
  * 图形用户界面(GUI)。Python 没有内建图形用户界面功能,但有许多模块可供使用,它们提供对现有的GUI 软件的访问途径。第10 章和第11 章讨论了Tkinter 模块(包括在Python 标准库中),它允许Python 程序员访问Tool Command Language/Took Kit(Tcl/Tk)这一流行的GUI 工具包。利用这些编程工具,开发者可快速、方便地创建图形程序。利用在这几章所学的知识,读者可为本书其余部分的程序开发GUI。第11 章还讨论了模块Pmw,它利用Tkinter提供更复杂的GUI 组件。
  * 多媒体。多媒体功能可生成具有丰富视听感受的强大应用程序,由此增强用户的体验。可利用几个Python 模块创建令人印象深刻的多媒体应用程序。第24 章探讨了PyOpenGL 和Alice的功能,它们可创建3D 图形,并让它"动"起来。同时还讨论了pygame,它所包含的模块便于开发者访问强大的多媒体库。第24 章使用pygame 创建一个CD 播放器、一个电脑游戏以及一个影片播放器。
  * 多线程处理和进程管理。计算机可并发执行大量任务,比如同时打印文档、从网络下载文件和在Web 上冲浪等等。利用多线程处理技术,应用程序可执行并发性任务。Python 的多线程处理和进程管理功能尤其适合今天高度复杂的、多媒体密集型的、数据库密集型的、基于网络的、基于多处理器的以及分布式的应用程序。第18 章讨论了并发性和进程间通信;第19章详细讨论了多线程处理的问题,其中详细解释了Python 的Global Interpreter Lock(即全局解释器锁,负责管理线程执行)。本章还通过几个例子,介绍了常见的线程同步机制。
  * 文件处理和序列化。大多数应用程序都要在磁盘上读写数据。Python 针对数据存储和获取提供了几项高级功能。第14 章讨论了用于存储顺序数据的基本文件对象、用于存储随机访问数据的shelve 对象,以及用于将整个对象序列化到磁盘的cPickle 模块。
  此外,本书还讨论了其他许多主题。要详细了解每章的特点,请参阅1.6 节。
  Python 2.2 的特性
  本书出版时,喜闻Python 2.2 正式版刚刚发布。然而,本书所有示范代码都通过了Python 2.2b2(即Beta 2)和Release Candidate 1 的测试。测试平台包括Windows 和Linux操作系统。我们在各章尽可能介绍Python 2.2 的特性和功能。①本书要介绍Python 2.2 的以下特性。
  Floor 除法和True 除法:Python 2.2 引入新运算符(//)进行Floor(整数)除法。在此之前的Python版本中,除法运算符(/)的默认行为是Floor 除法;在2.2 以后的版本,默认行为变成True(浮点)除法。通过定义两个除法运算符,Python 新版本可在同时使用了整数及浮点除法的程序中,避免出现类型混淆的问题。本书2.6 节讨论了这两种除法的区别,并解释了程序如何更改除法运算符(/)的默认行为,令其执行True 除法。
  嵌套作用域:Python 2.2 引入了嵌套作用域的概念,它意味着嵌套的类、方法和函数现在可访问其封闭作用域中定义的变量。这种行为尤其适合编写lambda 表达式。第4 章讨论了Python 的基本作用域规则,并提供了一系列万维网资源,便于读者更深入地了解嵌套作用域。如程序员在一种功能性编程模型中使用Python,作用域的嵌套就显得非常重要。附录B 更详细地讨论了嵌套作用域。由于本书强调的主要是面向对象的编程风格,所以只指出了使用嵌套作用域的一个高级动机,并推荐了可进一步参考的资源,便于读者在需要时了解Python 中的嵌套作用域和功能性编程。
  更多的面向对象功能:Python 2.2 的大多数新特性是为语言添加更多的面向对象功能。第8 章和第9 章介绍了其中的一些新特性。第8 章讨论了如何重载一个由程序员定义的类,以便为运算符(包括新运算符//)定义行为。介绍了一个字典方法,它也是Python 2.2 版本新增的,便于程序用if/in 语句检测字典中是否包含一个特定的键。第9 章讨论开发者们期待以久的新特性–允许从内建类型继承程序员定义的类。本章展示了一个实例,它继承自内建类型list,目的是实现由程序员定义一个列表,其中只包含惟一性的元素。还讨论了其他面向对象特性,其中包括静态方法,__slots__(用于定义类中可能包含的一个对象的属性),方法__getattribute__(客户每次访问一个对象的属性时执行),以及属性(允许类定义get/set 方法,以便在客户访问一个属性时执行)。
  迭代器:附录B 介绍的其他Python 2.2 特点中,有的未在正文中详细讲解。附录B 首先全面地探讨了迭代器–用于遍历一系列值的特殊对象。B.2 节提供了两个例子,它们展示了由程序员定义的迭代器类,并演示该类的一个客户如何使用迭代器从一个序列中获取值。第一个例子展示了如何定义一个类,使它的对象支持迭代器;第二个例子展示了一个计算机猜谜游戏,它展示如何利用迭代器处理长度不确定的序列。Python 2.2 采用了新的迭代器机制后,性能比以前的版本有了显著改进。另外,软件设计也因为程序员能分离迭代行为和随机访问行为而得以改进。
  生成器:这是一种"可恢复函数",能记住两次调用期间的状态。生成器也有利于性能和设计的改进。通常,程序中可以写一个生成器,采用一种简单、直观方式定义如何生成一个序列的元素。生成器还有利于执行重复性任务,或要求复杂逻辑和状态信息才能完成的任务。B.2 节围绕上述问题讨论了生成器,并定义了两个版本的生成器来计算斐波拉契序列。第一个版本不确定地生成序列中的下一个值;第二个生成所有序列值,直到包括用户自定义的第n个值。
  万维网访问
  本书(以及我们的其他出版物)所有示例代码都可从以下网站下载:
  www.deitel.com
  www.prenhall.com/deitel
  注册过程非常简单。建议下载所有例子,并在阅读时运行相应的程序。修改例子,可马上看到修改效果–这是提升编程水平的有效方式之一。上述网站还解释了如何安装本书用到的各种软件(比如Apache Web Server)。网站还提供其他Web 服务器和软件的安装指南(注意,它们是有版权的。学习时可任意使用,但未经Prentice Hall 和作者的书面许可,不得采取任何方式重新出版它的任何部分)。
  ① 阅读本书前,先从python.org 下载最新Python 版本。新版本发布后,我们会对本书代码进行测试,并在www.deitel.com 进行相应的更新。阅读每一章之前,最好能访问我们的网站查看这些更新。

截图:



欢迎投稿 职场/创业方向. 邮箱wangfzcom(AT)163.com:王夫子社区 » Python编程金典 pdf版(49M) PDF 免费下载

点评 0

评论前必须登录!

登陆 注册