写给程序员的Python教程
上QQ阅读APP看书,第一时间看更新

Python是什么呢?简单地说,Python是一门编程语言。它最初由Guido van Rossum于20世纪80年代末开发。Guido继续积极参与并指导了语言的发展和演变,以至于他获得了“仁慈的独裁者(Benevolent Dictator for Life,BDFL)”的称号。

Python是一个开源项目,你可以随意下载和使用。

非营利性Python软件基金会管理Python的知识产权,该组织在促进语言发展方面发挥着重要作用,并在某些情况下资助Python开发。

在技术层面上,Python是一门强类型的语言。这意味着语言中的每个对象都有一个确定的类型,通常没有办法规避该类型。同时,Python是动态类型的,这意味着在运行代码之前,程序员无须对代码进行类型检查。这与静态类型的语言(如C++或Java)相反,编译器为你进行了大量的类型检查,拒绝了滥用对象的程序。最终,Python使用鸭子类型,这是对Python类型系统的最贴切的描述,其中对象对上下文的适用性仅在运行时确定。我们将在第8章中更详细地介绍这一点。

Python是一门通用编程语言。它不受限于任何特定的域或环境,可以有效地用于各种各样的任务。当然还有一些领域,相比其他语言,Python不太适合,例如在极端的时间敏感或内存受限的环境中。但是在大多数情况下,Python与许多现代编程语言一样灵活且可适应,甚至比大多数语言可能还要更好。

Python是一门解释型语言。在技术上这样说可能有点错误,因为Python在执行之前通常被编译成特定格式的字节码。但是,这个编译是不可见的,在使用Python时,程序通常是立即执行代码,而没有明显的编译阶段。编辑和运行之间没有中断,是使用Python的好兆头之一。

Python的语法清晰、易读,并且富有表现力。与许多流行的语言不同,Python使用空格来分隔代码块,并且在执行通用布局的过程中,会消除不必要的括号。这意味着所有Python代码看起来都相似,你可以很快地学会阅读Python。与此同时,Python的表达式语法意味着你可以在单行代码中获得很多信息。这种富有表现力且高可读性的代码意味着Python代码的维护比较容易。

Python语言有多种实现。最初的并且仍然是最常见的实现是用C编写的。这个版本通常被称为CPython。当有人谈论“运行Python”时,可以基本确定他们是在讨论CPython,这也是我们将要在本书中使用的实现。

Python的其他实现:

  • Jython,编写运行于Java虚拟机之上的代码;
  • IronPython,编写运行于.Net平台之上的代码;
  • PyPy,用一种名为RPython的语言来编写,它是为开发动态语言(如Python)而设计的。

这些实现通常落后于CPython,CPython被认为是Python语言的“标准”。在本书中你学到的大部分内容适用于所有这些实现。

现在,有两种重要的Python语言版本被使用:Python 2和Python 3。这两个版本代表了Python语言的一些关键元素的变化,而针对一个版本编写的代码通常不适用于另外一个版本,除非你采取了特殊的预防措施。Python 2比Python 3更古老、更成熟,但 Python 3解决了旧版本中的一些已知的缺点。Python 3是Python的明确未来,你应该尽可能地使用它。

虽然Python 2和Python 3之间存在一些关键的区别,但两个版本的大部分基本原理是一样的。如果你学习了一个版本,那么你所知道的大部分知识都适用于另一个版本。在本书中,我们将学习Python 3,但是我们会在必要时指出Python 2和Python 3之间的重要区别。

除了作为一种编程语言,Python还提供了一个功能强大且用途广泛的标准库。“内置电池(batteries included)”是Python哲学的一部分,这意味着你可以将Python立即用于现实世界中的许多复杂的任务,而无须安装第三方软件包。这不仅非常方便,而且意味着通过使用有趣的例子来开始学习Python是比较容易的——这也是本书的目标!

“内置电池”方法的另一个重要影响是,这意味着许多脚本甚至是一些复杂的脚本,都可以在任何安装了Python的系统上立即运行。这样可以清除一个常见的烦人障碍,即安装软件,你在使用其他语言时可能会面临这个问题。

标准库通常具有高水平的文档。这些API有很好的文档,并且模块通常具有良好的叙述性说明文档,包括快速入门指南、最佳实践信息等。网上也提供了标准库文档,如果你需要,也可以将它安装在本地。

由于标准库是Python的重要组成部分,我们将在本书中介绍其中的部分内容。本书仅仅是涉猎了其中的一小部分,我们鼓励你自己去进行探索。

最后,上面提到的那些关于Python的介绍都是不完整的,对许多人来说,Python代表了编写代码的哲学。清晰和易读的原则是编写正确或Python化的代码的一部分。Python社区关心的是简单性、可读性和明确性等问题,这意味着Python代码往往更加优雅!

许多Python的原则都体现在所谓的Python之禅中。“禅”不是一套硬性的规定,而是一组在编写代码时应该铭记于心的指南或者准则。当你发现自己试图在几个行动方案之间做出决定时,这些原则往往会给你一个正确的方向。我们将在本书中突出“Python之禅”中的元素。

Python是一门伟大的语言,我们很高兴能帮助你开始使用它。当你读完本书的时候,你将能够编写大量的Python程序,并且将能够阅读更复杂的Python程序。更重要的是,你将拥有牢固的Python基础,并了解该语言中的更高级的主题,希望本书能够真正做到让你对Python充满激情。Python是一门大型语言,其内置以及周边构成了庞大的软件生态系统,它提供了一场真正可以探索一切的冒险之旅。

欢迎来到Python!

现在,越来越多的项目在开发之初就支持Python3,甚至只支持Python3。

这本书的诞生之路有些曲折。2013年,当我们整合了挪威的软件咨询和培训业务的Sixty North公司时,我们受到Pluralsight(一家在线视频培训材料出版商)的邀请,为快速增长的MOOC市场制作Python培训视频。当时,我们没有制作视频培训材料的经验,但我们相信自己肯定能做好。考虑到某些限制,我们希望认真且谨慎地构思Python的介绍性内容。例如,我们希望只用很少的前向引用,因为这些对读者来说是非常不方便的。我们都深信图灵奖获得者Leslie Lamport的那句格言——“如果你只想不干,那你也仅仅是在空想”。因此,我们自然而然地首先为视频课程产品编写了一个脚本。

很快,我们编写、录制好了在线视频教程——Python基础,并且由Pluralsight发布,该课程持续多年广受好评。从一开始,我们就认定以这些脚本为基础可以编写出一本书,不过可以很公正地说,我们低估了将脚本中的内容转换成一本好书所需的努力。

本书就是转化的成果。它可以用作独立的Python教程,也可以作为我们的视频课程的辅助工具,这具体取决于最适合你的学习方式。本书是三部曲中的第一本,该系列还包括The Python JourneymanThe Python Master。后两本书对应于我们以后的Pluralsight课程Python–Beyond the Basics和Advanced Python。(即将推出!)