Python的历史及介绍

Python的诞生

Python的创始人吉多·范罗苏姆(Guido van Rossum),在1989年12月的圣诞节期间,为了打发时间,决定开发一种新的脚本解释程序,作为ABC语言的继承。

现在,python以其优美,清晰,简单的特性在全世界广泛流行,成为最主流的编程语言之一。

截止至2016年7月,python在TIOBE流行编程语言排行榜,已经上升到第四名。并且从趋势图中可以看出其还在呈增长趋势。

Python被广泛应用于众多领域,例如:

数据分析: 2016/2月/11,美国科学家宣布发现引力波,分析观测30年的数据。分析引力波数据的Python包:GWPY
云计算 : 典型应用——Python开发的OpenStack
WEB开发: 众多优秀的WEB框架,Django、flask、 tornado
科学运算人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas。
系统运维: 运维人员必备,slatstack(系统自动化配置和管理工具),Ansible(自动化运维工具)
图形开发: wxPython、PyQT、TKinter

并且越来越多的公司选在python作为其主要开发语言,例如:

Google - Google Groups、Gmail、Google Maps、AlphaGo等,Google App Engine支持python作为开发语言
NASA - 美国宇航局,从1994年起把python作为主要开发语言
Dropbox - 美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
BitTorrent - bt下载软件客户端
gedit - Linux平台的文本编辑器
GIMP - Linux平台的图像处理软件(Linux下的PS)
知乎(国外的Quora) - 社交问答网站,国内最大的问答社区,通过Python开发
Autodesk Maya - 3D建模软件,支持python作为脚本语言
YouTube:世界上最大的视频网站YouTube就是用Python开发的
Facebook:大量的基础库均通过Python实现的
Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的

除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
更多案例:https://www.python.org/about/success/

Python的优缺点

任何语言都有其欧缺点,python也不例外,先让我们看看python的优点:

1.  Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,

初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有

相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。

3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可

以在市场上所有的系统平台上运行

5. 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

6. 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能

    缺点:

1.代码不能加密

因为PYTHON是解释性语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。

2. 多线程支持不好

3.Python慢

Python相对C语言确实慢很多,但其实这里所指的速度慢在大多数时候我们是无法感知的,比如说,是用C语言程序开发了一个程序,执行需要花0.01秒,使用Python实现同样功能的程序,需要花0.1秒

的时间,虽然相差10倍,但是我们基本是感知不到的。更多的时候,程序慢是程序员实现功能方式导致的。就好像开罐头的时候,有的人用牙咬,有的人用工具,这样两个人的效率相比起来就差了很多。

我曾经听过一句话,语言本身的快慢差距并不能被我们体会出来,真正让我们体会出差距的是用语言的人。

Python的解释器

1.Cpython

Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

2.Jython

Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

3.IronPython

Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

4.PyPy

Python实现的Python,将Python的字节码字节码再编译成机器码。此编辑器能够大大加快Python程序的运行速度,可能会是Python的未来。

5.RubyPython、Brython ...

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

Python发展史

1989年的圣诞节,Guido开始编写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一

种C和shell之间,功能全面,易学易用,可拓展的语言。

1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓

展系统。

Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.

1999年 Python的web框架之祖——Zope 1发布

Python 2.0 - 2000/10/16,加入了内存回收机制,构成了现在Python语言框架的基础

Python 2.4 – 2004/11/30, 同年目前最流行的WEB框架Django 诞生

Python 2.5 - 2006/09/19

Python 2.6 - 2008/10/1

Python 2.7 - 2010/07/03

Python 3.0 - 2008/12/03

Python 3.1 - 2009/06/27

Python 3.2 - 2011/02/20

Python 3.3 - 2012/09/29

Python 3.4 - 2014/03/16

Python 3.5 - 2015/09/13

2014年11月,Python2.7将在2020年停止支持的消息被发布,并且不会在发布2.8版本,建议用户尽可能的迁移到3.4+    Python最初发布时,在设计上有一些缺陷,比如Unicode标准晚于Python出

现,所以一直以来对Unicode的支持并不完全,而ASCII编码支持的字符有限。例: 对中文支持不好Python3相对Python早期的版本是一个较大的升级,Py3在设计的时候没有考虑向下兼容,所以很多早期

版本的Python的程序无法再Py3上运行。为了照顾早期的版本,推出过渡版本2.6——基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。2010

年继续推出了兼容版本2.7,大量Python3的特性被反向迁移到了Python2.7,2.7比2.6进步非常多,同时拥有大量3中的特性和库,并且照顾了原有的Python开发人群。

Python2还是Python3?

py2.7是2.x系列的最后一个版本,已经停止开发,不再增加新功能。2020年终止支持。所有的最新的标准库的更新改进,只会在3.x的版本里出现。Guido决定清理Python2.x ,并且不再兼容旧版本。

最大的一个改变就是使用Unicode作为默认编码。Pyhton2.x中直接写中文会报错,Python3中可以直接写中文了。从开源项目看,支持py3的比例已经大大提高,知名的项目一般都支持py2.7和py3+。

py3比py2更规范统一、去掉了没必要的关键字Python3.x还在持续改进。

所以我们还是推荐大家使用Python3.x。

原文地址:https://www.cnblogs.com/lovebean/p/9249068.html

时间: 2024-11-05 13:29:48

Python的历史及介绍的相关文章

Python学习笔记-模块介绍(三)-模块包和搜索路径

一个python文件就是一个模块,使用独立的命名空间,但实际使用过程中单单用模块来定义python功能显然还不够.因为一个大型的系统几千上万个模块是很正常的事情,如果都聚集在一起显然不好管理并且有命名冲突的可能,因此python中也出现了一个包的概念. 一.python中的包介绍 包是通过使用"点模块名称"创建Python模块命名空间的一种方法.列如,模块名称 A.B 表示一个在名为 A的包下的名为B的子模块.就像使用模块让不同模块的作者无需担心彼此全局变量名称(冲突)一样,点模块名称

Python编程语言历史及特性01

一.Python语言 Python(英语发音:/paθn/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲

python学习手册——1介绍python对象类型

在python ,数据以对象的形式出现--无论是python提供的内置对象,还是使用python或是像C扩展库这样的扩展语言工具创建的对象.尽管在以后才能确定这一概念,但对象无非是内在中的一部分,包含数值和相关操作的集合. 由于对象是python 最基本的概念,从这一章开始我们将会全面地体验python的内置对象类型. python程序可以分解成模块,语句,表达式以及对象,如下所示: 1.程序由模块构成 2.模块包含语句 3.语句包含表达式 4.表达式建立并处理对象 为什么使用内置类型 1.内置

python爬虫实例详细介绍之爬取大众点评的数据

python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能.本文主要介绍如何利用python进行网站数据的抓取工作.我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性.可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通.Java的可读性还可以,就是代码冗余比较多,

Python迭代器和生成器介绍

Python迭代器和生成器介绍 迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration. 在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作. 常用的几个内建数据结构tuple.list.set.dict都支持迭代器,字符串也可以使用迭代操作. 你也可以自己实现一个迭代器,如上所述,只

[翻译]Mock 在 Python 中的使用介绍

Mock 在 Python 中的使用介绍 [TOC] 原文链接与说明 https://www.toptal.com/python/an-introduction-to-mocking-in-python 本翻译文档原文选题自 Linux中国 ,翻译文档版权归属 Linux中国 所有 本文讲述的是 Python 中 Mock 的使用 如何在避免测试你的耐心的情况下执行单元测试 很多时候,我们编写的软件会直接与那些被标记为肮脏无比的服务交互.用外行人的话说:交互已设计好的服务对我们的应用程序很重要,

Python爬虫教程-08-post介绍(百度翻译)(下)

Python爬虫教程-08-post介绍(下) 为了更多的设置请求信息,单纯的通过urlopen已经不太能满足需求,此时需要使用request.Request类 构造Request 实例 req = request.Request(url=baseurl,data=data,headers=header) 发出请求 rsp = request.urlopen(req) 文件: 案例v8文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py08po

Python常用模块——模块介绍与导入

Python常用模块--模块介绍与导入 一.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少了,很多编程语言都采用这种组织代码的形式. 在Python中,以个.py文件就可以称之为一个模块(Module). 二.使用模块有什么好处? 1.最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地

python的历史与优劣

历史 Python的创始人是Guido van Rossum,在发明Python语言之前Guido曾参与过一门称作ABC的语言的设计,ABC是专门为非专业程序员设计的:Guido在Python语言的设计过程中吸收了ABC语言的许多优点,诸如ABC的数据类型(列表.元组.文本等). python的优点: NO.1 快速开发(唯一能和python比开发效率的语言只有rudy). NO.2跨平台(由于python的开源,他比java更能体现"一次编写到处运行" NO.3解释性( 无须编译,直