
第1章 Python语言基础
1.1 Python简介
Python是一个高层次的兼具解释性、编译性、互动性的面向对象的脚本语言。它主要基于其他语言发展而来,包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell等脚本语言,该语言是在20世纪80年代末、90年代初由基多·范·罗苏姆在荷兰国家数学和计算机科学研究所设计出来的。
Python目前分为2.x版本和3.x版本,其官方主页:https://www.python.org/,如图1-1所示。

图1-1 Python官方主页
Python语言近几年呈迅猛发展之势,在2020年1月TIOBE(https://www.tiobe.com/tiobeindex/)编程语言排行榜中位居第三位,如图1-2所示。

图1-2 TIOBE编程语言排行榜
Python语言应用越来越广泛,得益于它自身的优良特性。
1.易于学习
Python语言主张的精神就是简单优雅,尽量写容易看明白的代码,尽量写少的代码,定位于简单、易于学习,而且Python代码易于维护,完全可以满足复杂应用的开发需求。
2.跨平台开源
Python可以运行在多种主流平台,例如Linux、Windows以及MacOS。由于其是纯粹的自由软件,源代码和解释器CPython均遵循GPL(GNU General Public License)协议。
3.广泛的标准库
Python拥有丰富的、跨平台的库,与UNIX、Windows和MacOS兼容得很好。Python包含网络、文件、GUI、数据库、文本、数值计算、游戏开发、硬件访问等大量的库,用户可利用自行开发的库和众多的第三方库简化编程,从而节省很多精力和时间成本,缩减开发周期。
4.数据科学处理功能强大
Python在数据处理方面具有先天优势,其内置的库外加第三方库(例如Numpy库实现各种数据结构、Scipy库实现强大的科学计算方法、Pandas库实现数据分析、Matplotlib库实现数据化套件、Uurlib和Beautifulsoup库实现HTML解析等)简化了数据处理,可以高效实现各类数据科学处理。
5.人工智能领域应用广泛
Python在人工智能、数据挖掘、机器学习、神经网络、深度学习等领域均得到了广泛的支持和应用,例如翻译语言、控制机器人、图像分析、文档摘要、语音识别、图像识别、手写识别、目标检测、控制机器人、采集数据、预测疾病、预测点击率与股票、合成音乐等。
6.种类繁多的解释器
Python是一门解释型语言,代码通过解释器执行,为了适应不同的平台,其可运行多种解释器,每个解释器有不同的特点,都能够正常运行Python代码,下面介绍五种典型的Python解释器。
1)CPython
从官方网站下载并安装好Python后,就直接获得了官方版本的解释器,即CPython。CPython是用C语言开发的解释器,在命令行运行命令:Python,就启动了CPython解释器。
2)Jython
Jython是基于Java平台的解释器,其把Python代码编译成Java字节码执行,运行在JVM上。Jython主页:http://www.jython.org/,如图1-3所示。

图1-3 Jython主页
3)IPython
IPython是一个基于CPython交互式解释器之上的解释器,IPython在交互方式上比CPython有所增强,执行Python代码的功能和CPython是相同的。IPython主页:https://pypi.org/project/ipython/,如图1-4所示。

图1-4 IPython主页
4)PyPy
PyPy比CPython更加灵活,能够对Python代码进行动态编译,有更快的执行速度。PyPy主页:http://pypy.org/,如图1-5所示。

图1-5 PyPy主页
5)IronPython
IronPython是运行在微软.Net平台上的Python解释器,能够把Python源代码编译成.Net的字节码。IronPython已经集成到了.NET framework中,能够与.NET已有的库无缝整合。IronPython主页:https://ironpython.net/,如图1-6所示。

图1-6 IronPython主页
Python目前已经被众多的国内外公司使用,典型的国外公司有Google(Google App Engine、Google Earth、爬虫、广告等)、YouTube(基于Python开发的世界最大的在线视频网站)、Instagram(基于Python开发的美国最大的图片分享网站),Facebook(基于Python开发的基础库)等;典型的国内公司有豆瓣、知乎、阿里巴巴、腾讯、百度、金山、搜狐、盛大、网易、新浪、网易、果壳、土豆等,它们均通过Python来实现所需的功能。