欢迎进入奇妙的Python世界!如果你是一名具备某种高级编程语言使用经验的职业程序员或者学生,本书将帮助你以最少的代价掌握Python语言。本书的目的是以轻松的交谈式风格和大量示例引导你逐步掌握Python语言的编程方法。
在本书出版的时候,Python 2.0刚刚发布,所以你拥有的极可能是最新和最好的东西。书后所附的光盘里有Python语言最新的三个版本,它们是:1.5.2版本、1.6版本和2.0版本,还包括有最新发布的Python语言解释器的Java版本—JPython。
本书的风格:技术化、但同时也很容易阅读理解
我的教学经验表明:把这本书写成一本严格意义上的“初学者”书籍,或者是一本硬邦邦的计算机科学方面的参考书并不是最好的办法,而编写一本容易阅读和理解,同时又面向技术的书是我们的目的,这能够帮助读者尽快掌握Python语言,并立刻把它运用到自己的实际工作中去。在学习过程中,我们将逐步介绍有关的概念,并且会给出一些适当的例子。在每一章的结尾部分都为读者准备了大量的练习,强化该部分内容中介绍过的概念和思路。
在对Python语言稍做介绍,并开始学习这个编程语言之前,我们将通过第2章“快速入门”使读者对Python语言先有一个基本的认识。这一章是为那些等不及按部就班的阅读学习,想立刻找找Python语言感觉的人们准备的。如果你不想走这条路,可以按照正常的方法从介绍Python语言中的对象的后续章节开始学习。随后三章介绍Python语言的基本数据类型:数值、字符串、列表、表列和字典等方面的内容。
Python的错误处理能力对程序员和用户都非常有用,而我们也将专门用一章的篇幅来讨论这个问题。最后,我们涉及到的Python语言的“核心”内容主要集中在函数(function)、模块(module)和类(class)方面,分别有相应的章节进行论述。本书的最后一章介绍了Python语言的扩展办法。
作者的Python语言经验
我是几年前在一个名为Four11的公司工作时开始接触Python语言的。当时该公司的一个主要产品是Four11.com政府机关目录服务。Python最初是用来设计名为Rocketmail的因特网电子邮件服务的,它最终演变成为今日的Yahoo!Mail。
除了C++之外,许多控制性的软件和网络上的前端软件都完全是用Python语言编写的。我参加了Yahoo!Mail的地址簿和拼写检查器的开发工作。从那时开始,Python语言的身影逐渐出现在Yahoo!的其他站点上,包括“People Search”(网上寻友)、“Yellow Pages”(电话黄页)、“Maps and Driving Directions”(地图和交通路线)等。
虽然Python语言对当时的我来说是一个新东西,但上手相当容易,和我以前学习过的其他编程语言相比它也简单得多。因为当时非常缺少关于Python语言的教科书,我不得不使用其“Library Reference”(函数库大全)和“Quick Reference Guide”(快速参考指南)作为我的学习工具,而正是这一点成为我编写这本书的动机。
本书的内容
本书主要分为三个部分。第一部分占用了大约三分之二的篇幅,主要向读者介绍这种编程语言的核心内容;第二部分涉及到一系列高级论题,向读者展示了Python语言可以完成哪些工作;第三部分是附录。
Python可以说是无处不在,有时候你都想象不到有哪些人在使用它,而他们又都用它来干些什么。虽然我很想再用一些篇幅来介绍Python在数据库(RDBMS关系数据库管理系统、SQL类数据库语言等)、应用CGI处理进程、XML、数学/科学计算、视频和图形图像、Zope等方面应用的内容,但实在是没有足够的时间对这些论题分别进行详细的讨论了。但是,令人欣慰的是我们至少能够向读者提供一些关于Python语言的许多关键性的发展方向的充分介绍。
下面是对本书各章内容的简单介绍。
第一部分:程序设计语言Python
第1章—欢迎使用Python 我们从向读者介绍Python语言入手,给出了它的历史、功能特色等,以及如何获得和安装Python语言的方法。
第2章—快速入门 如果你是一名有经验的程序员,并且想体验一下Python语言,就可以从本章入手。我们在此介绍了Python语言的基本概念和语句。因为其中大部分东西对你来说都应该是比较熟悉的,所以你不必花费太多的阅读时间,只需简单地学习一些Python语言的语法知识就可以立刻着手于自己的项目工作了。
第3章—语法和程序设计风格 这个部分向读者详细介绍了Python语言的语法和编程风格方面的注意事项,还介绍了Python语言的关键字和它的内存管理能力。在这一章的结尾部分给出了一个Python语言的应用程序,你可以通过它了解真实Python代码的样子。
第4章—对象 本章介绍Python语言的对象。除了基本对象属性之外,我们还在此介绍了Python语言所有的数据类型和操作符,并且向读者展示了标准数据类型的各种组织方法。同时在本章还涉及到适用于大多数Python对象的内建函数。
.第5章—数字 Python语言有四种数值类型,它们是:正常或者说“普通”的整数、长整数、浮点实数和复数。本章介绍了这四种数值类的数据类型、操作符以及适用于数值类型数据的内建函数。
第6章—序列:字符串、列表和表列 这一章的内容相当丰富,它向读者揭示了Python语言强大的序列类数据类型:字符串、列表和表列。我们将向读者介绍适用于各数据类型和全体操作符的内建函数、使用方法以及特性。
第7章—字典数据类型 字典是Python语言中对映射或者哈希表数据类型的称呼。与其他的数据类型一样,字典也有它自己的操作符和适用的内建函数与使用方法。
第8章—条件语句和循环语句 类似于其他的高级编程语言,Python也支持诸如for和while之类的循环语句以及if语句(及其相关语句)。Python语言中还有一个名为range()的内建函数,它使Python语言中的for循环语句更像是一个传统的计数类型的循环而不是它本身意义上的那种遍历类型的循环。
第9章—文件和输入/输出操作 本章介绍了标准的文件对象和输入输出操作,还介绍了文件系统访问、文件执行以及数据的固定存储等方面的内容。
第10章—错误和例外处理 Python语言中最为强大的结构之一就是它的例外处理能力。读者可以在这一章找到对此问题完整的解决办法、处理或者忽略例外情况的指导意见;更重要的是如何才能建立自己的例外处理手段。
第11章—函数 建立和调用函数相对来说是比较容易的,但Python语言还另外提供了许多有用的特性,比如默认参数、命名或者关键字参数、可变长参数以及函数性编程结构等。我们还将深入讨论变量的作用范围,并简单涉及一些递归调用方面的内容。
第12章—模块 Python语言的特色之一就是它的可扩展性。这个特色允许“即编即用”方式的程序设计,鼓励代码的重复使用。只用一条代码语句就可以把那些编写为模块的应用程序插入到其他Python模块中去使用。而多个模块软件构成的集合可以简单地通过软件包的方式加以组织。
第13章—类和OOP Python语言是一个完全面向对象的程序设计语言,并且是在它产生之初就这样设计的。因此,Python语言并不需要程序员特意编写面向对象的程序—你可以继续按照自己的想法编写结构化/过程化的代码,然后在必要的时候把它转化为“OO”(面向对象的)程序。另外,这一章的内容也对高级论题中的某些概念进行了介绍,比如操作符过载(operator overloading)、定制、程序优化等。
第14章—执行环境 “执行”这个术语可以有好几个意思,既可以表示可调用和可运行的对象,也可以表示运行其他的程序(Python程序或者其他语言编写的程序)。我们将在这一章里对这些方面进行讨论,另外,还将有限度地讨论受限制的执行情况以及终止程序执行的各种方法。
第二部分:高级论题
第15章—规则表达式 规则表达式是一个功能强大的工具,主要用途是模式匹配、内容摘取以及搜索与替换等功能。本章介绍的是这一方面的内容。
第16章—网络程序设计 如今的应用程序大部分都要面向网络,而读者也不能例外。在这一章里,你将学习如何通过TCP/IP和UDP/IP协议建立客户和服务器。
第17章—多线程程序设计 多线程程序设计是许多类型的应用程序改进其执行性能的有力武器。我们在这一章里将解释有关的概念,示范如何正确地建立一个Python多线程应用程序,以完整的书面文档形式向读者介绍如何在Python语言中进行多线程设计。
第18章—使用Tkinter进行GUI程序设计 Tkinter是以Tk图形工具库为基础的,它是Python语言缺省的GUI开发模块。在介绍Tkinter的时候我们将向你展示如何建立简单的GUI应用程序样本(比如说10次,确实够快!)。
第19章—Web程序设计 使用Python语言进行的Web程序设计主要有三种形式:Web客户、Web服务器和帮助Web服务器传输动态生成的Web主页的通用网关接口(Common Gateway Interface)应用程序。我们将在这一章里全面介绍这些内容:简单和高级的Web客户和CGI应用程序,以及如何建立自己的Web服务器。
第20章—扩展Python语言 我们在前面已经提到过代码复用和编程语言的可扩展能力会有多么大的作用。在纯粹的Python语言里,这些扩展都是模块,但你也可以通过C、C++或者Java语言开发出底层的代码,再把这些代码接口到Python语言中去。
选读章节
本书的某些标题上标有一个星号(*),它表示该部分是高级论题或者可以选读的内容,读者可以跳过它们。它们的内容通常都是自成体系,可以在今后有时间的时候再研究。
如果读者已经具备了足够的编程经验或者已经设置好了自己的Python开发环境,可以略过最开始的第1章,直接跳到第2章“快速入门”。
体例
Python解释器有用C语言和Java语言分别编写的两种。为了区别这两种解释器,我们把用C语言编写的原始版本称为“CPython”,把用Java语言编写的版本称为“JPython”。同时,我们把“Python”定义为此编程语言的原始定义,用CPython和JPython表示此语言两种具体的解释器实现。我们用“python”表示CPython的可执行文件名,用“jpython”表示JPython的可执行文件名。
本书中所有的程序输出和源代码都以英文Courier字体出现。Python语言的保留字是加黑的英文Courier字体。以三个大于号(]]])开始的输出行表示Python解释器的提示符。
在“编程提示”内容的旁边我们加上如右所示的一个标记。[CN]
在“编程风格”提示内容的旁边我们加上如右所示的一个标记。[CS]
在“模块”内容的旁边我们加上如右所示的一个标记。[CM]
Python语言中的新增功能旁边会出现几个标记[1.5.2]、[1.6]、[2.0],标记中的数字表示的是该功能第一次出现在Python语言中的哪个版本。
联系信息
欢迎对本书提出任何反馈意见。如果读者有意见、建议、诀窍、投诉、程序缺陷、疑问……无论什么,都可以通过cyberweb_consulting@yahoo.com与我联系。
在这本书的Web站点“Python Starship”上可以找到勘误表和其他资料,该站点的地址是:http://starship.python.net/crew/wesc/cpp/。
本书英文原书书名:Core Python Programming.
英文原书书号:ISBN 0-13-026036-3
英文原书出版社网址:www.phptr.com