1.2 Python语言
1.2.1 Python的历史
Python的作者Guido van Rossum是荷兰人。Guido理想中的计算机语言,是能够方便调用计算机的各项功能,如打印、绘图、语音等,而且程序可以轻松地进行编辑与运行,适合所有人学习和使用。1989年,Guido开始编写这种理想的计算机语言的脚本解释程序,并将其命名为Python。Python语言的目标是成为功能全面、易学易用、可拓展的语言。
第一个Python的公开版本于1991年发布。它是用C语言实现的,能够调用C语言的库文件,具有类、函数、异常处理等功能,包含表和词典等核心数据类型,以模块为基础的拓展系统。
之后,在Python的发展过程中,形成了Python 2.x和Python 3.x两个不同系列的版本,这两个版本之间不兼容。为了满足不同Python用户的需求,目前是Python 2.x和Python 3.x两个版本并存。Python 2.x的最高版本是Python 2.7,Python官网宣布,直到2020年,都不再为Python 2.x发布新的版本。Python 3.x是从2008年开始发布的,本书中的程序是在Python 3.6版本下实现的。
存在Python 2.x和Python 3.x两个不同版本的原因是,Python 3.0发布时,就不支持Python 2.0的版本,但Python 2.0拥有大量用户,这些用户无法正常升级使用新版本,所以之后才发布了一个Python 2.7的过渡版本,并且Python 2.7将会被支持到2020年。
1.2.2 Python的特点
Python是目前最流行且发展最迅速的计算机语言,它具有如下几个特点。
(1)简单、易学
Python以“简单”“易学”的特性成为编程的入门语言。一个良好的Python程序像一篇英文文档,非常接近于人的自然语言,用户在应用Python的过程中,可以更多地专注于解决的问题,而不必考虑计算机语言的细节,从而回归语言的服务功能。
(2)开源,拥有众多的开发群体
用户可以查看Python源代码,研究其代码细节或进行二次开发。用户不需要为使用Python支付费用,也不涉及版权问题。因为开源,越来越多的优秀程序员加入到Python开发中,Python的功能也会愈加丰富和完善。
(3)Python是解释型语言
使用Python语言编写的程序可以直接从源代码运行。在计算机内部,Python解释器先把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。Python是解释型语言,用户可以将一些代码行在交互方式下直接测试执行,使得Python的学习更加简单。
(4)良好的跨平台性和可移植性
Python的开源本质,决定了它可以被移植到多个平台。如果用户的Python程序使用了依赖于系统的特性,Python程序可能需要修改与平台相关的代码。Python的应用平台包括Linux、Windows、Macintosh、Solaris、OS/2、FreeBSD、Amiga、Android、iOS等。
(5)面向对象
Python既支持面向过程的编程,也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言(如C++和Java)相比,Python以一种非常强大又简单的方式实现面向对象编程,为大型程序的开发提供了方便。
(6)可扩展性和丰富的第三方库
Python中可以运行C/C++编写的程序,以便某段关键代码可以运行得更快或者希望某些算法不公开。用户也可以把Python程序嵌入到C/C++程序中,提高C/C++程序的脚本能力,使其具有良好的可扩展性。
Python还有功能强大的开发库。Python标准库可以处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、HTML、WAV文件、密码系统、GUI(图形用户界面)和其他与系统有关的操作。除了这些标准库,它还有大量高质量的第三方库,如wxPython、Twisted和Python图像库等。
1.2.3 Python的应用
Python的应用领域覆盖了Web开发、科学运算、系统运维、GUI编程、数据库编程等诸多方面。
(1)Web开发
Python包含标准的Internet模块,可用于实现网络通信及应用。Python的第三方框架包括Django、Web2py、Zope等,可以让程序员方便地开发Web应用程序。典型的Web应用,如Google爬虫、Google广告、世界上最大的视频网站YouTube、豆瓣、知乎等都是使用Python开发的。
(2)科学运算
Python广泛应用于人工智能与深度学习领域,典型的第三方库包括NumPy、SciPy、Matplotlib等。随着众多程序库的开发,使得Python越来越适合于进行科学计算、绘制高质量的2D和3D图像。例如,美国航天局(NASA)多使用Python进行数据分析和运算。
(3)云计算
Python是云计算方面应用最广的语言,其典型应用OpenStack就是一个开源的云计算管理平台项目。
(4)系统运维
Python是运维人员必备的语言。Python标准库包含多个调用操作系统功能的库。通过第三方软件包pywin32,Python能够访问Windows API。使用Ironpython,Python能够直接调用Net Framework。一般而言,使用Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性等方面都优于普通的Shell脚本。
(5)GUI编程
Python可以非常简单、快捷地实现GUI程序。Python内置了Tkinter的标准面向对象接口TkGUIAPI,可以非常方便地开发图形应用程序,还可以使用其他一些扩展包(如WxPython、PyQT、Dabo等)在Python中创建GUI应用。