零基础搭建量化投资系统:以Python为工具
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 准备工作

1.1 Python简介

Python是一种高层次的,结合了解释性、编译性、互动性和面向对象的脚本语言,其设计具有很强的可读性。它是一种解释型语言,这意味着开发过程中没有了编译这个环节;它是一种交互式语言,这意味着可以在Python提示符“>>>”处直接输入程序语句;它是一种面向对象语言,这意味着它是一种支持把客观事物封装成抽象的类的编程技术。

对于初级程序员而言,Python是一种伟大的语言。它支持广泛的应用程序开发,从简单的文字处理到浏览器再到游戏,无所不能。

由于Python语言具有简洁性、易读性及可扩展性,因此在国外科学计算的研究机构中的使用日益增多,一些知名大学也已经采用Python来教授程序设计课程。例如,卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学和编程导论。众多开源的科学计算软件包都提供了Python的调用接口,如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,如NumPy, SciPy和Matplotlib三个经典的科学计算扩展库,它们分别为Python提供了快速数组处理、数值运算及绘图功能。因此,由Python语言及其众多的扩展库所构成的开发环境十分适合工程技术和科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。

1.Python的发展历史

Python是由吉多·范罗苏姆(Guido van Rossum)于20世纪90年代初在荷兰国家数学和计算机科学研究所设计出来的。Python本身也是由诸多其他语言发展而来的,它自研发之初就遵循GPL(General Public License)协议(一种开源协议)。这也是其迅速发展的主要原因之一。目前,Python由一个核心开发团队维护,而Guido van Rossum主要指导其进展,仍然起着至关重要的作用。

Python有两个最新版本,即Python 2.7.16和Python 3.7.3。Python 2和Python 3是两个不同语法的版本,很多旧库只支持Python 2,目前仍有小部分人在使用。Python 3具有很多高级语言的特性,功能更加强大。Python 2对中文支持不是很好,不支持中文文件名,图形中也不支持中文显示。Python 2.7将在2020年停止维护,很多公司已经明确不再为Python 2提供后续版本库的支持,因此,本书主要介绍Python 3.7的开发编程。

Python 2和Python 3语法不同的例子:

Python 2: print 'Hello Word ! '

Python 3: print('Hello Word ! ')

2.Python的特点

(1)易于学习:从小学生到80岁的老人,只要认识英文字母,就可以学习Python语言。浙江省对信息技术课程进行了改革,从2018年开始将Visual Basic语言更换为Python语言,甚至还将Python语言纳入了浙江省信息技术高考内容。

(2)易于阅读:Python代码定义得更加清晰,其编写就像读英语一样简单。

(3)易于维护:Python成功的原因之一在于它的源代码相当容易维护。

(4)一个广泛的标准库:Python最大的优势之一是拥有丰富的、跨平台的资源库,并且与UNIX, Windows和Macintosh的兼容性都很好。

(5)互动模式:互动模式的支持,即通过Python系统终端输入代码,按回车键就能获得代码运行结果。

(6)可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多操作平台,如Windows, macOS, Linux,甚至是安卓手机上。

(7)可扩展:即可以用C语言或C++语言编写Python的模块。当你需要一段运行很快的关键代码,或者想要编写一些不愿开放的算法时,就可以使用C语言或C++语言完成这部分程序,然后从Python程序中调用。

(8)数据库:Python提供所有主流的商业数据库的接口。

(9)图形用户界面(Graphical User Interface, GUI)编程:Python支持GUI编程,拥有大量GUI开发框架可供选择。此外,Tkinter, Ttk, Tix等图形扩展模块已经成为Python系统中的标准库。

(10)可嵌入:可以将Python嵌入到C/C++程序中,让你的程序用户获得“脚本化”的能力。