天天看点

Python学习(第一站:Python简史)Python的诞生:Python的发展:Python的意义:应用领域优缺点:

起因:最近对爬虫这个概念很感兴趣,对于使用java实现爬虫实在搞不来,只好多学一门语言来搞了,Python的学习成本是最低的,学习周期短、易上手、应用领域广(对职场也有好处)。

学习目的:利用Python实现爬虫

嗯!学习一样新事物之前,有必要了解一下它的历史和意义。第一篇就记录一下Python的起源和意义吧!

Python简史

  • Python的诞生:
  • Python的发展:
  • Python的意义:
    • 解释型语言
    • 多范型编程语言
    • 动态类型
  • 应用领域
  • 优缺点:
    • 优点
    • 缺点

Python的诞生:

Python之父,荷兰人Guido van Rossum。他于1982年从阿姆斯特丹大学取得了数学和计算机硕士学位。

Guido希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程。ABC语言让Guido看到希望。Guido van Rossum在CWI工作,参与到ABC语言开发中,为ABC语言贡献代码。ABC语言是一个为编程初学者打造的研究项目。ABC语言给了Python之父Guido很大影响,Python从ABC语言中继承了很多东西:比如字符串、列表和字节数列都支持索引、切片排序和拼接操作等。

在CWI工作了一段时间后,Guido构思了一门致力于解决问题的编程语言,他觉得现有的编程语言对非计算机专业的人十分不友好。于是,1989年12月份,为了打发无聊的圣诞节假期,Guido开始写Python的第一个版本。值得一提的是Python这个名字的由来,Python有蟒蛇的意思,但Guido起这个名字完全和蟒蛇没有关系。当Guido在实现Python的时候,他还阅读了Monty Python’s Flying Circus的剧本,这是来自一部来自20世纪70年代的BBC喜剧。Guido认为他需要一个简短、独特且略显神秘的名字,因此他决定将该语言称为Python。

1991年,Python的第一个解释器诞生了。他是由C语言实现的,有很多语法来自C,又受到了很多ABC语言的影响。有很多来自ABC语言的语法,知道今天还很有争议,强制缩进就是其中之一。要知道,大多数语言都是代码风格自由的,即:不在乎缩进有多少,写在哪一行,只要有必要的空格即可。而Python是必须要有缩进的,这也导致了很多其他语言的程序员开玩笑说“Python程序员必须会要用游标卡尺。”

Python的发展:

1989年由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年

Granddaddy of Python web frameworks, Zope 1 was released in 1999

  • Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
  • Python 2.0 - October 16,

    2000,这个版本的主要新功能是内存管理和循环检测垃圾收集器以及对Unicode的支持。然而,尤为重要的变化是开发的流程的改变,Python此时有了一个更透明的社区。

  • Python 2.1 - April 17,2001 ,Python 2.1支持了嵌套作用域,就像其他静态作用域语言一样。
  • Python 2.2 - December 21,2001,Python

    2.2的重大革新是将Python的类型(用C写成)和类(用Python写成)统一入一个层级,使得Python的对象模型成为纯粹和一致的面向对象的模型;还增加了迭代器,受CLU和Icon启发的生成器,和描述器协议。

  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生。
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • Python 3.0 - December 3,

    2008,Python3.0发布了。Python3.x不向后兼容Python2.x,这意味着Python3.x可能无法运行Python2.x的代码。Python3代表着Python语言的未来。

  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015

Python的意义:

Python是一种解释型、多范型编程、动态数据类型的高级程序设计语言。

解释型语言

程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好.)

多范型编程语言

Python完全支持结构化编程和面向对象编程,还有很多特征支持函数式编程和元编程包括元类[和元对象(魔术方法)。通过扩展还可以支持很多范型,包括面向切面编程、契约式设计和逻辑编程。

动态类型

在内存管理上采用引用计数和环检测相结合的垃圾收集器。它的特征还有动态名字解析(后期绑定),即在程序执行期间绑定方法和变量的名字。比如 int number=10; 而动态类型语言不需要提前定义,在运行的时候才做数据类型的检查。

应用领域

  • 爬虫:能快速对某个事物收集数据
  • 云计算: 云计算最火的语言, 典型应用OpenStack
  • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。,

    典型WEB框架有Django

  • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维: 运维人员必备语言
  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。
  • 图形GUI: PyQT, WxPython,TkInter

优缺点:

优点

  • Python 简单易用,学习成本低,代码样式简洁;
  • Python 可扩展性强;
  • Python 开源;
  • Python 标准库和第三库众多;
  • Python 可应用于人工智能和大数据领域;

缺点

  • 代码加密困难,不像编译型语言的源代码会被编译成可执行程序,Python 是直接运行源代码,因此对源代码加密比较困难。
  • 运行速度慢,解释型语言的通病

继续阅读