Python入门到进阶,这本书有什么不同?

实际上,Python并不是简单的脚本语言,而是一个能支持大规模软件开发的通用编程语言,其实现具有较高的执行效率。PSF的Python系统带有一个很大的标准库,提供了很多在实际开发中非常有用的功能。此外,全世界的开发者已经为Python开发了面向各种应用领域的大量专用程序包,例如面向图形用户界面的设计和编程,面向网络应用、数值计算、数据统计和处理、图形图像处理、可视化等。针对所有重要应用领域,都可以找到相关的程序包,大大方便了人们用Python开发领域应用软件和综合性软件的工作。

Python语言和标准库的设计特别考虑了可扩充性,提供了丰富的接口和工具,使有经验的程序员比较容易使用其他语言,例如C、C++、CPython(一种专门用于扩充Python的C语言工具)等编写Python模块,然后能像Python标准库包一样方便地使用。这种情况也使一些大公司把Python用作高级的**粘接语言**(glue language),用一些较低级的语言实现一批性能要求较高的完成具体工作任务的模块,而后用Python实现整个系统的高层控制和调度。这样做,既能获得很好的开发效率,也有利于修改和扩充。

Python基金会提供最新版本的Python语言系统和基本开发环境,任何人都可以免费获取。该系统可以在各种主流计算机和软件平台上运行,包含了丰富的标准程序库和完整文档。此外,也存在另外一些商业的或非商业的Python系统可供选择。经过多年使用,全世界的Python开发者和使用者已经形成了一个活跃的专业社群,活跃在世界各地(包括中国),探讨、交流学习和使用Python的经验。互联网有很多与Python有关的信息,有许多Python讨论组。这些都促进了Python语言的学习和传播。

当然,Python也不是完美无缺的(完美的语言并不存在),也有些缺点。还有一些使用需要注意的问题。后面讨论中也会提到一些这方面的情况。

Python的应用情况

Python已经有了非常广泛的实际使用。国际上的许多知名IT公司和机构以其作为主要开发语言,如美国的Google、Yahoo!、Dropbox等大公司,CERN(欧洲原子能研究中心)、NASA(美国国家航空航天局)等重要机构,还有大量较小的公司和机构。国内企业的应用正在发展,有较大影响的豆瓣网就是用Python开发的。

此外,全世界Python社区一直在努力,开发了许多适合各领域需要的Python包,这些工作也大大推动了Python的应用。例如,Python的科学计算专用扩展库,包括NumPy(高效的数组数据处理)、SciPy(高性能数值运算)和matplotlib(数学绘图库)等。大量面向数据处理和计算的开源包也为Python使用提供了接口(可作为库调用,支持Python应用开发),如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK等。Python语言与这些库结合,构成的开发环境很适合工程技术人员和科研人员处理实验数据、制作图表,以及开发科学和工程计算方面的应用程序。在应用系统领域,Python社群开发了一批支持网络应用开发的Python库和其他方面的库及编程框架,这些工作和后续经验的积累,已经使Python成为目前使用最多的应用系统开发语言之一。

Python还被广泛用于复杂的和大规模的数据处理,成为目前人们在研究、开发大数据和人工智能等热门发展方向时使用最多的语言之一。

Python系统和编程环境

本节简单介绍PSF主导开发的CPython系统及其附带的编程环境。对初学者而言,使用这个系统及其所带的程序包就足够了。一些开源社团或软件厂商开发了更强大的开发环境,利用CPython的功能或其他Python实现。鉴于本书的基本设想和目标读者群,这里不准备涉及任何超出CPython系统的内容。有兴趣的读者可以自己学习。

Python是一种高级语言,具有易读易用的形式。为了运行Python程序,需要有一个Python解释器来填补Python源程序和计算机之间的鸿沟。PSF的Python系统(CPython,以下说Python系统时专指这个系统)的主要部分就是一个解释器 。

下面以Windows系统中安装Python的情况为例,在其他系统里的安装情况类似。从PSF网站或其他地方下载Python安装文件,在所用计算机环境成功安装后,通常可以看到快捷启动方式。Python系统各部分的安装位置、系统的启动方式、启动后窗口显示的情况,在不同环境里可能有些不同,但在功能上没有本质差别。

以命令行方式启动Python解释器,启动后的情况如图1所示。解释器显示版本等信息,最后一行是**提示符**串`>>>`,可以在这里输入要求执行的命令(程序)。

Python入门到进阶,这本书有什么不同?

​图 1 启动Python解释器后显示的命令行窗口

Python解释器采用解释方式工作。一旦得到一个完整的程序单元,它就执行该单元并输出结果,然后重复。后面还会介绍解释器工作方式的一些细节。

CPython提供了一个程序开发环境IDLE,使程序员可以方便地编辑程序并随时运行。启动IDLE将看到一个窗口,顶部有标准的菜单条。图2显示了IDLE的解释执行窗口的一个情况 ,可以看到解释器的提示符。输入一个程序单元(表达式或语句)后换行,解释器就会执行它并显示结果。这里显示的是执行3个表达式后的情况。第一个表达式要求计算1的值,解释器给出1;第二个表达式要求计算1+2;第3个表达式要求计算2的1000次幂,得到的大整数输出了几行。

Python入门到进阶,这本书有什么不同?

​图 2 启动IDLE执行窗口(Shell)的情况

IDLE的另一种窗口是编辑器,如图3所示。在这里编辑的程序可以随时运行。一个代码单元称为一个**模块**,执行前需要保存为文件。Python术语中**模块**和**程序文件**基本是同义词,程序文件应该以py作为扩展名。

Python入门到进阶,这本书有什么不同?

IDLE窗口支持常规的编辑命令。与执行窗口相比,这里多了Format和Run两个菜单。Format里的命令用于修改被编辑程序的格式。Run菜单用于启动模块执行,包括启动(或激活)关联执行窗口,调用解释器检查代码的语法,从空环境开始执行所编代码。运行时,解释器逐一执行其中语句,代码的标准输入和输出(常见的是用标准函数`input`和`print`)通过关联的执行窗口实现。

IDLE的执行窗口还有一个Debug菜单,其中命令服务于程序调试,需要与编辑窗口配合使用。有关功能将在“附录C”介绍。此外,运行IDLE时按F1功能键,或者通过Help菜单的相应选项,都能打开Python系统自带的语言文档。

用IDLE(或其他编辑器)开发的Python程序(模块)可以脱离编辑器,直接交给Python解释器执行。假设要执行的文件是prog.py,只需在命令行窗口中键入:

Python入门到进阶,这本书有什么不同?

​就能启动Python执行该程序了[假设Python解释器已在操作系统(OS)的命令路径上]。

IDLE是一个简单的开发环境,在开发复杂的应用系统时可以考虑用其他开发环境。有些通用开发环境带有配合使用CPython的插件,例如Eclipse,可以在安装插件后用于Python程序开发。

JetBrains公司的PyCharm是目前比较流行的一个专业开发环境,提供了很好的开发支持。由于Python程序文件的内容就是普通文本,完全可以用任何文本编辑器编辑开发。CPython的标准库还提供了一些支持调试的包。

前面说过,CPython系统带有一个标准库,包含一大批程序包,系统文档中包含了标准库包的文档。标准库包的情况丰富多彩,有些包提供一些基础功能,如数学函数、文件操作、文件输入输出、随机数生成等。另一些包提供通用的编程服务功能,例如字符串处理、正则表达式、数据持久性、图形用户界面编程、并发编程、程序源文件组织等。一些包提供了某些特殊功能,如支持Web应用程序、媒体处理、加密解密等;还有一些支持程序开发、调试等。如果开发中需要某些功能,但语言没提供,可以到标准库中找找。

本书主要关注Python语言本身的编程问题,之后的讨论将不涉及工具的使用。本书也不准备作为标准库的使用手册,对标准库的介绍将限于书中讨论Python语言基本功能和编程技术的需要。读者可以查看CPython的自带文档或其他材料,找到更多信息。

除了基本的Python系统和标准库程序包,一些个人、组织或公司也开发了许多第三方库,或对一些有用的库做了Python定制。有些库已被广泛使用,如支持图形用户界面开发的wxPython和PyQt。CPython推荐用自带的库安装工具pip安装其他库和程序包,Python参考手册中有说明。

Python入门到进阶,这本书有什么不同?

​《程序员学Python》

裘宗燕 著

本书是程序设计领域学者裘宗燕教授的潜心力作,程序员的Python入门和进阶指南。书中全面介绍了Python语言的各方面特征和应用技术,讨论了准确理解Python、正确使用Python语言开发程序所需要的深入概念和情况,还介绍了用Python开发较大型或较复杂程序时应该了解的一些高级功能,如程序的模块组织和导入系统,生成器、闭包和装饰器,基本的和高级的面向对象编程机制和技术,以及作为Python最新扩展的协程和异步编程等。

此外,本书还提供完整的进阶内容和对应案例,让读者全面深入地了解深度学习的知识和技巧,达到学以致用的目的。

Python入门到进阶,这本书有什么不同?


分享到:


相關文章: