1.1 Python 介绍
1.1.1 Python 简介
Python 是当今世界最流行的程序语言之一,它通俗易懂,可读性强,且拥有优秀的语法结构。Python 是一种解释型、面向对象的语言。由吉多·范罗苏姆(Guido van Rossum)(国内昵称:龟叔)于 1989 年发明,1991 年正式公布。官网:www.python.org。如果你是一个编程初学者,你会发现 Python编程并没有那么枯燥,甚至可以体会到 Python 的优雅与简洁之美,希望本书将会是你 IT 生涯最佳的启蒙恩师。Python 突出的简洁性、易读性和可扩展性,使得 Python 应用于科学研究的机构日益增多,这里也包括一些全球顶尖的大学也在采用 Python 教授程序设计课程。除此之外,Python在数据科学、人工智能、云计算、图形处理与互联网应用等领域同样占尽了风头。
1.1.2 Python 特点
可读性强
可读性远比听上去重要的多得多。一个程序会被反复的修改,可读性强意味着让你
可以在更短时间内学习和记忆,直接提高生产率。
语法简洁
研究证明,程序员每天可编写的有效代码数是有限的。完成同样功能只用一半的代
码,其实就是提高了一倍的生产率。
Python 是由 C 语言开发,但是不再有 C 语言中指针等复杂数据类型,Python
的简洁性让开发难度和代码幅度大幅降低,开发任务大大简化。程序员再也不需要
关注复杂的语法,而是关注任务本身。
入门级语言
只适合菜鸟?准确的说拉近了高手与初学者之间的距离。Python 简洁的语法结
构,学习门槛低,编程极易上手,无论老鸟还是菜鸟都站在同一个起跑线上。
解释性与交互性
与典型的 Java 编译型语言相比,Python 属于解释型语言。一方面,Python 编写一
条程序语句,即可解释执行返回一个结果。当程序出错时更容易跟踪与定位;另一
方面:Python 这种交互式模式为人机互动提供了更广阔的可能空间。
优秀的模块化思维
将代码组织为一个或若干模块,模块组织成为包、甚至库。试想当你编写程序的时
候如果已经有针对科学计算、爬虫、数据分析、可视化、机器学习等模块或第三方
库可以直接拿来使用,编程效率会极大的提高。
开源软件和丰富的第三方库
Python 是纯粹的开源语言, 源代码遵循 GPL 许可,这些特性使其更受大众欢迎,
软件更容易移植到其他的平台,如 Mac、Linux 等,因此 Python 拥有丰富的第三方
资源库是不足为奇的。
标准脚本语言
脚本程序是指只有需要被调用的时候才会被动态的解释执行。Python 允许混合使
用 C、Java 与 Python 代码,通过增强扩展性来解决一些特殊的问题,例如 Python
程序中允许调用一段由 Java 编写的程序模块(库)。以上这些特点都充分体现了
Python 的可扩展性和作为脚本语言的动态灵活性。
1.1.3 Python 应用场景
1)Web 应用开发
Python 经常被用于 Web 开发。比如,通过 mod_wsgi 模块,Apache 可以运行用 Python
编写的 Web 程序。Python 定义了 WSGI 标准应用接口来协调 Http 服务器与基于 Python 的
Web 程序之间的通信。一些 Web 框架,如 Django,TurboGears,web2py,Zope 等,可以让
程序员轻松地开发和管理复杂的 Web 程序。
2)操作系统管理、服务器运维的自动化脚本
在很多操作系统里,Python 是标准的系统组件。大多数 Linux 发行版以及 NetBSD、
OpenBSD 和 MacOSX 都集成了 Python,可以在终端下直接运行 Python。有一些 Linux 发行
版的安装器使用 Python 语言编写,比如 Ubuntu 的 Ubiquity 安装器,RedHatLinux 和 Fedora
的 Anaconda 安装器。GentooLinux 使用 Python 来编写它的 Portage 包管理系统。Python 标
准库包含了多个调用操作系统功能的库。通过 pywin32 这个第三方软件包,Python 能够访
问 Windows 的 COM 服务及其它 WindowsAPI。使用 IronPython,Python 程序能够直接调
用.NetFramework。一般说来,Python 编写的系统管理脚本在可读性、性能、代码重用度、
扩展性几方面都优于普通的 shell 脚本。
3)科学计算
NumPy,SciPy,Matplotlib 可以让 Python 程序员编写科学计算程序。
4)桌面软件
PyQt、PySide、wxPython、PyGTK 是 Python 快速开发桌面应用程序的利器。
5)网络编程
网络编程是 Python 学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯
就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其
所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析。
6)游戏
很多游戏使用 C++编写图形显示等高性能模块,而使用 Python 或者 Lua 编写游戏的逻
辑、服务器。相较于 Python,Lua 的功能更简单、体积更小;而 Python 则支持更多的特性
和数据类型。
7)爬虫开发
在爬虫领域,Python 几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进
行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步 IO、分布式爬
虫等,并针对 Scrapy 框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。
8)云计算开发
Python 是从事云计算工作需要掌握的一门编程语言,目前很火的云计算框架 OpenStack
就是由 Python 开发的,如果想要深入学习并进行二次开发,就需要具备 Python 的技能。
9)人工智能
Python 在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的
编程语言,得到广泛的支持和应用。
10)金融分析
金融分析包含金融知识和 Python 相关模块的学习,学习内容囊括 Numpy\Pandas\Scipy
数据分析模块等,以及常见金融分析策略如“双均线”、“周规则交易”、“羊驼策略”、
“Dual Thrust 交易策略”等。
1.1.4 Python 版本和兼容问题解决方案
最初,Python 是 20 世纪 80 年代末 90 年代初,由荷兰国家数学和计算机科学研究所的
Guido van Rossum 设计出来的。Python 的发展少不了借鉴和吸收其它优秀语言的精华,包括
C、C++、Unix shell 等。
Python 有两大版本阵营,分别是 Python2.x 和 Python3.x。Python2 发布于 2000 年 10 月。
最新版本是 2.7,已经停止更新,不会再有 2.8 以后了。预计 2020 年退出历史舞台。Python3
发布于 2008 年。Python3 有了较大的提升,不兼容 Python2。