Python的发展历史

  1989年,吉姆·范罗苏姆为打发时间,决定为当时正构思的一个新的脚本语言编写一个解释器。作为派森的狂热粉丝,他以Python命名该项目,使用C进行开发。

  1991年发布Python的第一个版本。此时Python已经具有了类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。

  1991-1994年,Python增加了lambda,map,filter and reduce

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

  2000年,加入了内存回收机制,构成了现在Python语言框架的基础

  2004年,web框架 Django 诞生

  2006年,Python 2.5

  2008年,Python 2.6

  2010年,Python 2.7

  2008年,Python 3.0

  2009年,Python 3.1

  2011年,Python 3.2

  2012年,Python 3.3

  2014年,Python 3.4

  2015年,Python 3.5

  2016年,Python 3.6

  2018年,Python 3.7

  Python的优缺点

  优点

  1. Python程序简单易懂,初学者入门容易。
  2. 开发效率高,有强大的第三方库,可以在基础库的基础上再开发,降低开发周期。
  3. 使用高级语言,编写程序无需考虑底层细节。
  4. 可移植性。
  5. 可扩展性,部分程序可用C或C++编写。
  6. 可嵌入性,可以把Python嵌入C或C++程序中。

  缺点

  1. 代码不能加密
  2. 多线程支持差

  Python的应用领域及前景

  数据分析:GWPY

  云计算:OpenStack

  WEB开发:Django、flask、tomado

  科学运算、人工智能:NumPy、SciPy、Matplotlib、Enthought librarys、pandas

  系统运维:slatstack、Ansible

  图形开发::wxPython、PyQT、TKinter

  Python 2.x 与 3.x 的区别

1.性能

  Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。

  Py3.1性能比Py2.5慢15%,还有很大的提升空间。

  2.编码

  Py3.X源码文件默认使用utf-8编码

  3.语法

1)去除了<>,全部改用!=

2)去除``,全部改用repr()

3)关键词加入as 和with,还有True,False,None

4)整型除法返回浮点数,要得到整型结果,请使用//

5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

7)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值

8)输入函数改变了,删除了raw_input,用input代替

9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了

10)新式的8进制字变量,相应地修改了oct()函数。

11)增加了 2进制字面量和bin()函数

12)扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list对象和seq是可迭代的。

13)新的super(),可以不再给super()传参数

14)新的metaclass语法

15)支持class decorator。用法与函数decorator一样

4. 字符串和字节串

现在字符串只有str一种类型,但它跟2.x版本的unicode几乎一样。

5.数据类型

1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long

2)新增了bytes类型,对应于2.X版本的八位串

3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有dict.has_key(),用in替代

6.面向对象  

1)引入抽象基类(Abstraact Base Classes,ABCs)。

2)容器类和迭代器类被ABCs化,所以cellections模块里的类型比Py2.5多了很多

3)迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法

4)增加了@abstractmethod和 @abstractproperty两个 decorator,编写抽象方法(属性)更加方便

7.异常

1)所以异常都从 BaseException继承,并删除了StardardError

2)去除了异常类的序列行为和.message属性

3)用 raise Exception(args)代替 raise Exception, args语法

4)捕获异常的语法改变,引入了as关键字来标识异常实例

5)异常链,因为__context__在3.0a1版本中没有实现

8.模块变动

1)移除了cPickle模块,可以使用pickle模块代替。最终我们将会有一个透明高效的模块。

2)移除了imageop模块

3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2,
rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模块

4)移除了bsddb模块

5)移除了new模块

6)os.tmpnam()和os.tmpfile()函数被移动到tmpfile模块下

7)tokenize模块现在使用bytes工作。主要的入口点不再是generate_tokens,而是 tokenize.tokenize()

9.其它  

1)xrange() 改名为range(),要想使用range()获得一个list,必须显式调用

2)bytes对象不能hash,也不支持 b.lower()、b.strip()和b.split()方法,但对于后两者可以使用 b.strip(b'\n\t\r \f')和b.split(b' ')来达到相同目的

3)zip()、map()和filter()都返回迭代器。而apply()、 callable()、coerce()、 execfile()、reduce()和reload()函数都被去除了现在可以使用hasattr()来替换 callable(). hasattr()的语法如:hasattr(string, '__name__')

4)string.letters和相关的.lowercase和.uppercase被去除,改用string.ascii_letters 等

5)如果x < y的不能比较,抛出TypeError异常。2.x版本是返回伪随机布尔值的

6)__getslice__系列成员被废弃。a[i:j]根据上下文转换为a.__getitem__(slice(I, j))或 __setitem__和__delitem__调用

7)file类被废弃

  Python相关职业要求及薪资待遇

  

Python开发环境的配置安装

  1. 进入官网,选择合适版本下载
  2. 打开Python-3.7.4.exe,勾选复选框并进行安装
  3. 安装完成
  4. 在电脑上搜索Python
  5. 测试
  6. 安装成功

Python的发展历史及其前景的更多相关文章

  1. 初学Python:Python的发展历史及下载安装

    Python作为一种计算机程序设计语言,自20世纪90年代初诞生至如今被人们逐渐悉知,经过版本更新以及功能添加,已广泛应用于各种独立的.大型项目的开发.Python 已经成为最受欢迎的程序设计语言之一 ...

  2. (五)python的发展历史

    1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器.Python这个名字,来自Guido所挚爱的电视剧Monty Python's Flying Circus.他希望这个新的叫做 ...

  3. 零基础学Python-第一章 :Python介绍和安装-02.Python的发展历史与版本

    pthhon3.0对开发者带来了麻烦,因为2.0个3.0的程序并不是兼容的. 目前python3.0已经变成了真正的主力 官方版本和发行版 发行版会把常用的科学计算的包也给继承进来.这样就不用考虑包和 ...

  4. 1.关于Python的发展历史你知道吗?

    1989,为了度过圣诞假期,Guido开始编写Python语言编译器.Python这个名字来自Guido的喜爱的电视连续剧<蒙蒂蟒蛇的飞行马戏团>.他希望新的语言Python能够满足他在C ...

  5. 简说Python发展及其就业前景

    简说python 发展历史 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. python从ABC语言 ...

  6. Python 发展历史

    1. Python发展历史 起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位.然而,尽管他算得上是一位数学家,但他更 ...

  7. python 学习之电脑的发展历史

    电脑的发展历史 电脑的学名叫计算机,电脑是用来做计算的.在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思.古人用石头打猎,所以还有可能是石头来辅 ...

  8. Web开发技术发展历史

    Web开发技术发展历史   来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...

  9. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

随机推荐

  1. The 2019 China Collegiate Programming Contest Harbin Site I. Interesting Permutation

    链接: https://codeforces.com/gym/102394/problem/I 题意: DreamGrid has an interesting permutation of 1,2, ...

  2. SpringMVC数据格式化

    SpringMVC数据格式化 1. 使用Formatter格式化数据 Converter可以将一种类型转换成另一种类型,是任意Object之间的类型转换. Formatter则只能进行String与任 ...

  3. SQL数据库调优

    1.使用With As做数据库递归,调优树形表结构 例如:设计表结构简化如:ID.ParentID.Name:这里的ParentID就是这个表本身的某个ID WITH cte AS ( UNION A ...

  4. 学到了林海峰,武沛齐讲的Day26 反射 组合的方式完成授

    class BlackMedium: feature='Ugly' def __init__(self,name,addr): self.name=name self.addr=addr def se ...

  5. Laravel Model updating&updated 事件使用注意事项

    1 触发条件 1.1 updating 1.1.1 如果字段无变化,不会触发此事件. 1.1.2 除非更改至少一个字段的值 2 事件逻辑不会覆盖 2.1 Trait 中定义事件如下 /** * The ...

  6. 利用亚马逊AWS搭建个人服务器

    转载博客地址:https://www.jianshu.com/p/a045d4217175

  7. centos7 安装python3.7.1

    centos7自带python2,由于执行yum需要python2,所以即使安装了python3也不能删除python21.安装依赖包yum -y groupinstall "Develop ...

  8. grafana+mysql忘记admin密码解决方法

    通过mysql修改admin的密码. 我之前注册了一个用户,所以我直接复制lvusyy这个用户的密码即可. update user inner join (select password,salt,r ...

  9. 前端武器库之jQuery示例

    1.全选 反选 取消 相关知识点: - 选择器 - .prop $('#tb:checkbox').prop('checked'); 获取值 $('#tb:checkbox').prop('check ...

  10. JavaScript 取两位小数有效数字

    a=2.33332.3333a.toFixed(2)"2.33"