购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 Python语言介绍

Python是一门集解释性、编译性、互动性和面向对象为一体的高层次计算机程序语言,也是一门功能强大而完善的通用型语言,已有20多年的发展历史,技术成熟且稳定。相比于C++或Java,Python让开发者能够用更少的代码实现更多的想法。

1.1.1 Python的发展史

荷兰人Guidovan Rossum是Python的创始人。1989年圣诞节期间,Guido决心开发一个新的脚本解释程序用来打发圣诞节的无趣。Python这个名字并不是来源于蟒蛇,而是因为Guido是一个名为Monty Python的飞行马戏团的爱好者。他希望这个新的叫作Python的语言能实现他的理念,成为一种位于C和shell之间、功能全面、易学易用、可拓展的语言。

Python从ABC语言上继承了一部分特性,如使用冒号“:”和缩进来表示程序块,而在C语言中使用{}来表示程序块,行尾没有分号,for和if结构中也没有括号()。Guido认为,ABC语言非常优美和强大,是专门为非专业程序员设计的。Guido认为ABC语言没有成功的原因在于其非开放性。于是,Guido决心在Python中避免复现这一错误,这收获了非常好的效果,Python能够完美结合C语言和其他的一些语言。

Python就这样从Guido手中诞生。1991年,第一个Python编译器(解释器)诞生。它使用C语言实现,并能够调用C库(.so)文件。1994年1月,Python 1.0版本正式发布。Python 2.0于2000年10月16日发布,增加实现完整的垃圾回收的功能,并且支持Unicode。同时,整个开发过程更加透明,社群对开发进度的影响逐渐扩大。2008年12月,Python 3.0正式发布,此时Python 3又被称为“Python 3000”或者“Py3K”,此版不完全兼容之前的Python源代码。出于兼容性的考虑,很多新特性后来也被移植到旧的Python 2.6/2.7版本上。截至2018年6月27日,Python已经更新至最新版的Python 3.7.0版本。

Python的语法很多来自C语言,但又受到ABC语言的强烈影响。Python从ABC语言中发展起来,结合了UNIX shell和C语言的习惯,最终成为一门为众多UNIX系统和Linux系统开发者所青睐的开发语言。截至2018年8月的TIOBE语言排行,Python的名次已上升至第4名,成为全球范围内仅次于Java、C语言及C++的开发语言,如图1-1所示。

图1-1 TIOBE语言排行榜

1.1.2 Python特性

Python语言是一门解释型、动态、强类型的面向对象编程语言。Python的解释型特性与计算机执行程序的步骤有关。由于计算机无法理解除机器语言以外的任何语言,所以必须将程序员编写的程序语言翻译成机器语言,计算机才能执行程序。按翻译的时机的不同,翻译的过程可分为编译和解释两种。在程序编写完成后进行翻译的过程称为编译,而在编写后不进行翻译在执行时才进行翻译的过程称为解释。解释型语言与编译型语言不同,解释性语言编写的程序不需要编译,节省了一道工序,在运行程序的时候才翻译。而编译型语言编写的程序在执行之前,需要一个专门的编译过程,将程序编译成为机器语言的文件。这使得Python比起其他编译型语言发布时更为便捷,但因为在执行时有一个翻译的过程,Python在执行效率上比编译型语言低一些。

动态类型语言是指在程序运行期间才去做数据类型检查的语言。在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在第一次赋值给变量时,在内部将数据类型记录下来。Python就是一种典型的动态类型语言。而静态语言与动态语言相反,静态语言的数据类型是在编译期间检查的,在编写程序时需要声明所有变量的数据类型。C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、Java等。

强类型定义语言(Explicit Type Conversion)是指一门计算机语言是否为强制数据类型定义的语言。强类型语言中的变量被指定为某个数据类型后,在被强制转换前永远是该数据类型。而弱类型语言与强类型定义语言相反,一个变量的数据类型是不确定的。Python是一门强类型的语言,Python不会对数据类型作隐式转换,而是调用方法对数据类型进行强制转换。除Python外,Java、C、C++和C#也是典型的强类型语言。

1.1.3 Python应用领域

Python作为一个设计优秀的程序语言,现在已广泛应用于各种领域,依靠其强大的第三方类库,Python在各个领域都能发挥巨大的作用。

1.数值计算

数值计算是数据挖掘、机器学习的基础。Python提供多种强大的扩展库用于数值计算,常用的数值计算库如表1-1所示。

表1-1 常用数值计算库及其简介

2.数据可视化

数据可视化是展示数据、理解数据的有效手段,常用的Python数据可视化库如表1-2所示。

表1-2 Python数据可视化库

3.Web开发

Web应用开发可以说是目前软件开发中最重要的部分。Python提供各种Web开发框架,帮助使用者快速实现功能开发。常用的Python网络开发类库如表1-3所示。

表1-3 Python常用网络开发类库及其简介

4.数据库管理

数据库是企业用于存放数据的主要工具,数据库管理包括了数据定义、数据操作、数据库运行管理、数据组织、数据库库保护、数据库维护等。Python提供了所有主流关系数据库管理接口,常用的Python MySQL连接库及其简介如表1-4所示。

表1-4 MySQL连接库

5.自动化运维

运维的主要内容包括保障业务长期稳定运行、保障数据安全可靠、自动化完成部署任务。Python能够满足绝大部分自动化运维的需求,目前在Linux运维中已用Python实现的应用如表1-5所示。

表1-5 Python自动化运维应用及相关功能

6.GUI编程

GUI(Graphical User Interface,图形用户界面)是指采用图形方式显示的计算机操作用户界面。Python提供多个图形开发界面的库用于GUI编程,常用Python GUI库如表1-6所示。

表1-6 Python常用GUI库及其简介

1.1.4 Python机器学习优势

Python是机器学习领域最优秀的编程语言之一,与同样支持机器学习且自带机器学习应用的MATLAB不同的是,由于Python是开源项目,所以几乎所有必要的组件都是完全免费的。当前机器学习领域的主流编程语言为Python、R、MATLAB、Java和C/C++,如表1-7所示。

表1-7 主流机器学习编程语言

相比起Java与C/C++,Python代码非常容易阅读和学习,使得大多数从事机器学习和人工智能的研究(工作)人员能以最方便的方式来实现自己的想法。Python具有严格且一致的语法风格,这使得每个Python使用者都可以更好地理解其他人的Python代码,而其他语言的语法有可能会导致混淆和不一致的编程范例。

Python作为一门理想的集成语言,将各种技术绑定在一起,除了为用户提供更方便的功能之外,还是一个理想的粘合平台,在开发人员与外部库的低层次集成人员之间搭建连接,以便用C/C++实现更高效的算法。

对于研究人员者而言,使用Python编程可以快速迁移代码并进行改动,而无须花费过多的精力在修改代码与代码规范上。开发者在Python中封装了很多优秀的依赖库,其中NumPy和SciPy库提供了目前解决机器学习问题所需的标准配置。

Python目前集成了大量的机器学习框架,其中常用机器学习库如表1-8所示。

表1-8 常用机器学习库

深度学习作为机器学习的分支,绽放了耀眼的光芒。由于Python的易用性与可扩展性,众多深度学习框架提供了Python接口,其中较为流行的深度学习库如表1-9所示。

表1-9 流行深度学习库 Tw6ddYERiBti1K0O5Dw+pDE+TK3btcXaU2ELf1zSyYOftvuGtBUH7px/NXZNqqjG

点击中间区域
呼出菜单
上一章
目录
下一章
×