1.1 认识Python
1.1.1 Python历史
Python编程语言诞生于20世纪90年代初,创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。受英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)的启发,创始人选Python(蟒蛇)作为该编程语言的名字。
ABC是由Guido参加设计的一种教学语言,这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是其非开放性造成的。Guido决心在Python中避免这一错误。同时,还想实现在ABC中闪现过但未曾实现的想法。
可以说,Python是从ABC发展起来的,主要受到了Modula-3(另一种相当优美且强大的语言)的影响,并且结合了Unix shell和C语言的编码习惯。
Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,Python的使用率呈线性增长。Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3于2008年12月3日发布,不完全兼容Python 2。在2021年4月TIOBE语言排行榜中,Python位居第3名,受欢迎程度逼近Java,旦有望超越Java;在IEEE Spectrum 2020编程语言排行榜中,Python稳居榜首,且连续夺冠4年。
1.1.2 Python语言特点
Python的设计哲学是优雅、明确、简单。因此,它拥有如下特点。
➢ 简单易学:Python语法简洁、代码清晰、结构简单,学习门槛比较低。
➢ 易于维护:Python的源代码风格清晰整齐、强制缩进,容易维护。
➢ 跨平台:Python程序可以在任何安装解释器的计算机环境中执行。
➢ 丰富的库:Python语言本身功能有限,其最大的优势之一是丰富的库,且在UNIX、Windows和Macintosh等平台都有很好的兼容性。
➢ 互动模式:互动模式的支持,可以在不同的终端输入执行代码,并获得结果,实现互动测试和代码片断调试。
➢ 可移植:由于它的开源本质,Python已经被移植到许多平台和设备终端上。
➢ 可扩展:Python被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython编写扩充模块。Python被称为胶水语言,能够黏合使用不同语言开发的功能模块。
➢ 可嵌入:可以将Python嵌入到C/C++程序,使程序获得脚本化的能力。
现在网上流传着"人生苦短,我用Python"的口头禅,使用Python进行开发速度快,可以节省时间和精力。
1.1.3 Python应用范畴
由于Python语言的简洁性、易读性以及可扩展性,使用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如,卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。
众多开源的科学计算软件包都提供了Python的调用接口。例如,著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了。例如,十分经典的科学计算扩展库NumPy、SciPy和Matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此,Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
除了常规的软件开发外,Python主要应用于如下领域。
➢ 科学计算:与科学计算领域最流行的商业软件MATLAB相比,Python是一门通用的程序设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多的程序库的支持。
➢ 自动化运维:在很多操作系统内,Python是标准组件,可以在终端下直接运行。Python标准库包含了多个调用操作系统功能的模块。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、可扩展性等方面都优于普通的shell脚本。
➢ 网络爬虫:Python对于各种网络协议的支持很完善,因此,经常被用于编写服务器软件、网络爬虫。能够编写网络爬虫的编程语言有很多,但Python绝对是主流,其中Scripy爬虫框架应用非常广泛。
➢ 数据分析:Python拥有比较完善的数据分析生态系统。
➢ 人工智能:得益于Python强大而丰富的库以及数据分析能力,而且Python是面向对象的动态语言,这就使得Python在人工智能方面备受青睐。