Python语言的语法简洁,开发效率很高,具有强大的功能,已经成为当今广泛应用的程序设计语言之一。对于开始学习程序设计的新手而言,选择Python语言作为第一门编程语言无疑是一个理想的选择。
Python语言是由荷兰国家数学与计算机科学研究所的研究员Guido van Rossum于20世纪 80 年代末、90 年代初设计出来的。这种语言之所以被命名为 Python,据说是因为 Guido van Rossum非常喜欢英国电视喜剧片《Monty Python′s Flying Circus》的缘故。
Python语言的第一个版本在1991年初公开发布。因为该语言采用开源方式发行,而且功能十分强大,所以其应用越来越多,很快就形成了一个规模庞大的语言社区。
Python语言是由诸多其他语言发展而来的,其中包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、UNIX shell以及其他脚本语言等。Python属于自由软件,其语言解释器和源代码均遵循GNU通用公共许可证协议。
Python 2.0于2000年10月发布,其中增加了许多新的特性。在Python 2.0向3.0迁移的过程中,Python 2.6和2.7作为过渡版本,基本上仍然使用Python 2.x的语法规则,但也考虑到向Python 3.0迁移的问题。
Python 3.0于2008年12月发布,该版本与之前的Python版本不完全兼容,使用Python 2.x编写的程序无法在Python 3.0上运行。当作者写作本书时,Python的最新版本为3.6.4,故本书以Python 3.6.4为蓝本讲述Python程序设计。
时至今日,Python语言由一个核心开发团队在维护,Guido van Rossum在该语言的发展过程中仍然起着至关重要的作用。
Python已经成为最受欢迎的程序设计语言之一。2004年以后,Python的使用率呈线性增长。
2017年7月20日,IEEE Spectrum杂志发布了第四届顶级编程语言交互排行榜,Python语言在2017年编程语言排行榜上高居首位。
Python是结合了解释性、交互性和面向对象的高层次的脚本语言。Python语言具有以下主要特点。
1)语法简洁。Python使用的关键字比较少,其语法结构中废弃了花括号、begin和end等标记,可以使用空格或制表符来分割代码块,语句末尾也不需要使用分号,语法规则简洁而优雅,更加容易阅读、学习和维护。
2)交互模式。Python有两种编程模式,即交互模式和脚本模式。交互模式是在Python提示符下可以直接输入和执行代码并可立即获得执行结果,这种交互模式便于学习和测试代码片段。
3)跨平台性。Python程序是通过其解释器解释运行的,在Windows、Linux和Macintosh等操作系统平台上都有Python解释器,从而可以保证Python程序在不同平台上具有一致性和兼容性。
4)开放源代码。Python是一种开源的编程语言,目前有许多开放社区为用户提供及时的技术支持,还提供了各种功能丰富的开源函数模块,这也为Python语言的发展创造了十分有利的条件。
5)可扩展性。Python支持C语言扩展,如果在Python应用开发过程中需要一段快速运行的关键代码,或者是想要编写一些保密的算法,则可以使用C或C++语言完成这部分程序,然后在Python程序中调用这部分程序即可。另一方面,也可以将Python代码嵌入到C或C++程序中,从而使程序具有脚本语言的灵活特性。
6)解释型语言。Python程序不需要编译成二进制代码便可直接运行,在这个过程中首先由Python解释程序将Python源代码转换成Python字节码,然后由Python虚拟机逐条执行字节码指令。如果需要,也可以使用Python Distutils的外部扩展(py2exe)将Python脚本转换为Windows下的可执行文件(以exe为文件扩展名),这样无需安装Python即可运行Python脚本。
7)面向对象。Python语言支持面向对象的编程或将代码封装在对象中的编程技术,在程序设计中可以抽象出类和对象的属性和行为,将它们组织在一定范围内,使用封装、继承、多态等方法来简化解决问题的过程。Python语言取消了保护类型、抽象类和接口等元素,从而在一定程度上简化了面向对象编程的过程。
8)丰富的数据结构。Python语言提供了丰富的内置数据结构,包括列表、元组、集合、字典等,这些数据结构极大地方便了程序设计,提高了程序开发效率。
Python作为一种功能强大的通用编程语言而广受好评,目前在国际上非常流行,正在得到越来越多的应用。Python语言的应用领域主要包括以下几个方面。
1)Windows系统编程。Python在Windows系统中得到了很好的应用,通过添加pywin2模块提供的Windows API函数接口,可以通过Python程序中实现Windows系统的底层功能,包括访问注册表、调用Active X控件以及各种COM(Component Object Model,组件对象模型)组件等,还可以完成许多其他的日常维护和管理工作,从而减少了用户维护的工作量。
2)数据库访问。Python语言提供了所有主要关系数据库的接口,包括SQLite、MySQL、Access、SQL Server以及Oracle等。要访问某种数据库,调用相应的Python模块即可。例如,通过内置的sqlite3模块访问SQLite数据库,通过pymysql模块访问MySQL数据库,通过pyodbc或win32.client模块访问Access数据库,通过pymssql模块访问SQL Server数据库等。
3)科学计算。Python语言广泛运用于科学计算领域,并发挥了独特的作用,有多种模块可以帮助用户在计算巨型数组、矢量分析、神经网络等方面高效率地完成工作。NumPy数值编程扩展包括很多高级工具,例如矩阵对象、标准数学库的接口等。通过将Python与常规代码(出于速度考虑而使用编译语言编写的用于数值计算的常规代码)进行集成,NumPy将Python变成一个缜密、严谨且简单、易用的数值计算工具,这个工具通常可以替代已有代码,而这些代码都是用FORTRAN或C++等编译语言编写的。此外,还有一些数值计算工具为Python提供了动画、3D可视化、并行处理等功能的支持。
4)图形用户界面(GUI)编程。Python语言支持创建图形用户界面,并且可以移植到许多系统中来调用。Python具有的简洁及快速的开发周期十分适合开发GUI程序。Python内置了Tkinter的标准面向对象接口Tk GUI API,使Python程序可以生成可移植的可视化的GUI。对Python/Tkinter GUI不做任何改变就可以在微软Windows、X Windows(UNIX和Linux)以及Mac OS(Classic和OS X都支持)等平台上运行。免费的扩展包PMW为Tkinter工具包增加了一些高级部件。此外,基于C++平台的工具包wxPython GUI API可以使用Python构建可移植的GUI,在wxPython和Tkinter的基础API(应用程序编程接口)上还构建了一些高级工具包,诸如PythonCard和Dabo等。通过适当的第三方库也可以使用其他GUI工具包,例如Qt、GTK、MFC以及Swing等。对于运行于浏览器中的应用或一些简单界面的需求,Jython(Java版本的Python)和Python服务器端CGI脚本则提供了另一种用户界面的选择。
5)多媒体应用。利用PIL、Piddle、ReportLab等模块可以处理图像、声音、视频、动画等。动态图表的生成、统计分析图表都可以通过Python来完成。另外,利用PyOpenGl模块用户可以迅速编写出三维场景。
6)网络编程。Python提供了众多的解决方案和模块,可以使用户方便地完成网络编程工作并定制出自己的服务器软件,无论是C/S还是B/S模式Python都提供了很好的解决方案。