Python编程导论(第2版)
上QQ阅读APP看书,第一时间看更新

第2章 Python简介

尽管每种编程语言都具有各自的特点(实际上这些特点没有语言设计者宣称的那么多),但在某些方面,它们还是有共同之处的。

低级编程高级编程:二者之间的区别是,编写程序时,我们是使用机器层次的指令和数据对象(例如,将64位数据从一个位置移动到另一个位置),还是使用语言设计者提供的更为抽象的操作(例如,在屏幕上弹出一个菜单)。

通用性专注于某一应用领域:指编程语言中的基本操作是广泛适用的还是只针对某个领域。例如,SQL设计的目的是使你更容易地从关系数据库提取信息,但你不能指望它去建立一个操作系统。

解释运行编译运行:指程序员编写的指令序列,即源代码是直接执行(通过解释器)的,还是要先转换(通过编译器)成机器层次的基础操作序列。(在早期的计算机中,人们必须使用与机器编码非常相似的语言来编写源代码,这种代码可以直接被计算机硬件解释执行。)这两种方法各有优势。使用解释型语言编写的程序更易调试,因为解释器可以给出与源代码相关的错误信息。而编译型语言编写的程序速度更快,占用的空间也更少。

在本书中,我们使用的语言是Python,但不仅限于Python。虽然本书可以帮助读者学习Python,但更重要的是,细心的读者可以从中学会如何通过编写程序解决问题。这种技能可以转化到任何一种编程语言中。

Python是一门通用性编程语言,几乎可以快速创建任何类型的程序,而不需要直接访问计算机硬件。然而,如果想创建高可靠性的程序,Python并不是最好的选择(因为它的静态语义检查比较弱)。同样,它也不适于需要多人或长时间编写与维护的程序(原因还是糟糕的静态语义检查)。

但是,相对于多数其他语言,Python确实有一些过人之处。它相当简单,易于学习。因为Python是解释型语言,所以能够提供实时反馈,这对编程新手特别有用。Python还可以调用大量免费的程序库,极大地扩展了自己的功能。本书也会用到一些库。

下面开始学习Python中的一些基本元素。这些概念几乎对所有语言都是通用的,只是在实现细节上有所差别。

需要提醒各位,本书并不会全面介绍Python。我们只是将Python作为一个工具,目的是阐明并思考和解决计算问题相关的概念。当这个隐含目标有需要的时候,我们会零零散散地介绍一些语言知识,至于与这个目标无关的Python特性则根本不会提及。我们认为这样做没有什么问题,因为现在有无数优秀的在线资源,几乎涵盖了这门语言的各个方面。讲授本书基于的课程时,我们建议学生使用这些免费的在线资源作为Python的参考资料。

Python是一门鲜活的语言。自从吉多·范·罗苏姆1990年发明Python以来,它已经发生了很多变化。最初的10年中,Python默默无闻,备受冷落。直到2000年Python推出2.0版本,情况才发生转变。除了语言本身实现了很多重要的改进,其演化路径也发生了标志性的转变。很多人开始开发可以与Python无缝对接的程序库,并提供持续性的支持。Python生态系统下的开发成为一种基于社区的活动。Python 3.0在2008年末发布。这个版本的Python修正了Python 2的多个发布版本(通常称为Python 2.x)在设计上的不一致。但是,它不是向后兼容的,这意味着大多数使用Python以前版本编写的程序不能在Python 3中正常运行。

过去的几年中,多数重要领域的Python程序库都转向了Python 3,并使用Python 3.5进行了充分的测试,这就是本书所使用的Python版本。