一. python 简介
Python,读作['paɪθɑn],翻译成汉语是蟒蛇的意思,Python 的 logo 也是两条缠绕在一起的蟒蛇的样子,然而 Python 语言和蟒蛇实际上并没有一毛钱关系。Python 命名来自他的开发者所喜欢的一个马戏团。
Python 的口号是:“人生苦短,我用 Python!”。
Python 语言是由荷兰程序员 Guido van Rossum,江湖人称“龟叔”,独立开发完成初版的。“龟叔”曾供职于 google,现任职于 dropbox 。1989 年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释语言。
Python 第一个公开发行版发行于 1991 年,所以这年被当作 Python 的诞生年。
Python 源代码遵循 GPL(GNU General Public License)协议,这是一个开源的协议,也就是说你可以免费使用和传播它,而不用担心版权的问题。
二. Python 的发展趋势
上图为 IEEE Spectrum2018 年发布的年度编程语言交互排行榜,python 稳居榜首。下图为 2018 年 5 月 PYPL 发布的编程语言排行榜,Python 第一次打败了 C++和 Java。
题外话:
最近,StackOverflow 发布一系列计算公式及编程语言各方面的排行,有兴趣可以看一下,指路:
https://mp.weixin.qq.com/s?__biz=MzA4MjEyNTA5Mw==&mid=2652568328&idx=1&sn=670e046c9fec0c660a2875789424f7a7&chksm=8464d342b3135a54696544e3a44a671505166bd609abad9ec7d97b8bb82bb27ce69646ad3fb5&mpshare=1&scene=23&srcid=0926RMf5vE9Ij0ChrgzYMAL0#rd
前面我们说了 Python 诞生自 1991 年,掰掰指头算算都 28 年了,比 1995 年的 JAVA语言都早了 4 年,为何大器晚成,现在才发力?
其一,在 1990 那个年代,计算机性能相比现在差很多,程序执行速度和效率很重要,快速开发不是第一要务,压榨机器性能才是。
其二,Python 出身不好。
三、Python 语言的特点
1. 简单易学、明确优雅、开发速度快
简单易学:与 C 和 Java 比,Python 的学习成本和难度曲线低很多,更适合新手入门,自底向上的技术攀爬路线。
明确优雅:Python 的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、
维护等都非常容易。
开发速度快:当前互联网企业的生命线是什么?产品开发速度!
2. 跨平台、可移植、可扩展、交互式、解释型、面向对象的动态语言
跨平台:Python 支持 Windows、Linux 和 MAC os 等主流操作系统。
可移植:代码通常不需要多少改动就能移植到别的平台上使用。
可扩展:Python 语言本身由 C 语言编写而成的,你完全可以在 Python 中嵌入 C,从而提高代码的运行速度和效率。你也可以使用 C 语言重写 Python 的任何模块,从根本上改写 Python。
交互式:Python 提供很好的人机交互界面,比如 IDLE 和 IPython。
解释型:Python 语言在执行过程中由解释器逐行分析,逐行运行并输出结果。
面向对象:Python 语言具备所有的面向对象特性和功能,支持基于类的程序开发。
动态语言:在运行时可以改变其结构。
3. “自带电池”,大量的标准库和第三方库
Python 为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作,这一特点被形象地称作“自带电池(batteries included)”。
4. 社区活跃,贡献者多,互帮互助
技术社区可以给我们对语言的学习和使用提供巨大的帮助,无论是前期的学习,还是日后的工作,只要有问题,技术社区的大牛都可以帮我们解决,有这些助力,可以帮我们更好地了解、学习和使用一门语言。
5. 开源语言,发展动力巨大
Python 是基于 C 语言编写的,并且使用 GPL 开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与 Python 的开发,促使它更好的发展,被更多的应用,形成良性循环。
四、Python 的缺点
我们光说了 Python 的优点,也得说说它的缺点。任何编程语言都有缺点,Python 也不例外。
其一是运行速度相对慢点。
其二是 GIL(Global Interpreter Lock)全局解释器锁。
五、Python 的应用方向
1. 常规软件开发
Python 支持函数式编程和 OOP 面向对象编程,能够承担任何种类软件的开发工作,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。
2. 科学计算
随着 NumPy, SciPy, Matplotlib, Enthought librarys 等众多程序库的开发,Python 越来越适合于做科学计算、绘制高质量的 2D 和 3D 图像。
3. WEB 开发
基于 Python 的 Web 开发框架不要太多,比如耳熟能详的 Django,还有 Tornado,Flask。其中的 Python+Django 架构,应用范围非常广,开发速度非常快,学习门槛也很低,能够帮助你快速的搭建起可用的 WEB 服务。
4. 网络爬虫
爬虫是大数据行业获取数据的核心工具。
5. 数据分析
在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python 是数据分析的主流语言之一。
6. 人工智能
Python 在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。
六、Python 的使用者
说了这么多先进的当下最前沿的 Python 技术方向,那么有哪些公司在使用 Python 呢?下面是一张不完全的统计图:
七、 Python 之禅
最后,让我们来看看 Python 的官方格言,也就是俗称的 Python 之禅。在 Python 的IDLE 或者交互式解释器中,输入 import this,你就会看到下面的一段话:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
八、Python 环境搭建
Python 是一个跨平台、可移植的编程语言,因此可在 windows、linux/unix 和 Mac os系统中安装使用。安装完成后,你会得到 Python 解释器(负责运行 python 程序),一个命令行交互环境,一个简单的集成开发环境。
首先,几个 Python 相关的网站地址:
Python 官网:http://www.python.org/
Python 文档地址:http://www.python.org/doc/
Python 模块仓库 https://pypi.python.org/pypi
1. Python 版本的选择
Python 有一个独有的版本问题,它同时存在 2.x 和 3.x 版本两条发行线,并且两者在语法上有一些不同之处,很多时候 3.x 并不向 2.x 兼容。根据官方的解释,Python3 是语言的现在和未来,Python2 必将成为过去式。
指路:https://wiki.python.org/moin/Python2orPython3
今后所使用环境:windows7/10 + Python3.7 + Pycharm Community
2. windows 下安装 Python
首先前往官网下载安装文件。选择 download 下的 windows,而不要直接选择右侧的按钮,那样你无法选择下载文件的格式:
注意:3.5+以上的 Python 版本不支持 windows xp 及更低版本的操作系统,并且windows 7 系统必须安装 sp1 包才可以。进入版本选择页面后,请按下图,选择:
下载完成后,我们会得到一个名字为 python-3.7.2-amd64 的安装文件,运行文件,会看到安装窗口:
上图中建议选择 Customize installation,然后使用类似 C:\Python37 的路径,方便以后使用。注意下方的 Add Python3.7.2 to PATH 选项,请务必打上勾,这能省去你配置系统环境变量的功夫。
安装验证:
如果中途没有出现什么错误,那么进入 CMD 界面,运行 python -V(大写的 V),如果执行结果显示 python 3.7.2,则表明安装成功。
或者直接输入 python,进入下图所示的交互式界面,也表示安装成功了。
如果弹出错误: python 不是内部或外部命令,也不是可运行的程序或批处理文件 。 要么是没正常安装,要么就是环境变量没有设置正确。请按下图中的提示设置环境变量。
九、Python 集成开发环境
Python 的学习过程少不了 IDE(集成开发环境),这些 Python 开发工具帮助开发者加快使用 Python 开发的速度,提高效率。高效的代码编辑器或者 IDE 应该会提供插件,工具等能帮助开发者高效开发的特性。
下面推荐几款常见的的 windows 下的 Python IDE,你可以根据自己的喜好来选择适合自己的 Python IDE。
1.IDLE
IDLE 是 python 自带的一个能够编辑、运行、浏览和调试 python 程序的 GUI,可以在几乎任何 python 平台上运行,包括 windows,Linux,Mac OS 等。
优点:免费,简单易用,可移植,自动支持绝大多数平台
局限:保存文件时需明确的添加“.py”;没有图形化界面;没有代码提示;没有包管理
效果图查看:
2.PyCharm
PyCharm 是由 JetBrains 打造的一款 Python IDE。
PyCharm 具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。另外,PyCharm 还提供了一些很好的功能用于 Django 开发,同时支持 Google App Engine。
PyCharm 官方下载地址:http://www.jetbrains.com/pycharm/download/
Community 版本完全免费
效果图查看:
3.Sublime Text
Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等。还可自定义键绑定,菜单和工具栏。
Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。
Sublime Text 是一个跨平台的编辑器,同时支持 Windows、Linux、Mac OS X 等操作系统。
效果图查看:
使用 Sublime Text 2 的插件扩展功能,你可以轻松的打造一款不错的 Python IDE,以下推荐几款插件:
CodeIntel:自动补全+成员/方法提示(强烈推荐)
SublimeREPL:用于运行和调试一些需要交互的程序(E.G. 使用了 Input()的程序)
Bracket Highlighter:括号匹配及高亮
SublimeLinter:代码 pep8 格式检查
4.Eclipse+Pydev
Eclipse 安装了 PyDev 插件后能够支持 Python 开发。Eclipse 是一个流行和强大的 python 开发工具,包含了对代码完成、语法突出显示、语法分析、重构、调试等功能的支持。
缺点是需要安装较大的系统,并且对于某些功能可能需要共享扩展。
效果图查看:
5.Visual Studio
在 VS 中可以创建 python 工程,但是必须下载相应的 python interpreter 才能正常使用。
7.其他 IDE:
Spyder:强大的交互式 python 开发环境,提供高级的代码编辑、交互测试、调试等特性,
支持 Windows,Linux 等系统。
Wing:兼容 python2.X 和 python3.X,可以结合 Django, matplotlib 等框架使用
PyScripter:免费开源