Python简介

Python简介

  • Python翻译成汉语是蟒蛇的意思,并且Python的logo也是两条缠绕在一起的蟒蛇的样子,然而Python语言和蟒蛇实际上并没有一毛钱关系。

Python简介_第1张图片

 

  • Python语言是由荷兰程序员Guido van Rossum,江湖人称“龟叔”,独立开发完成初版的。“龟叔”曾供职于google。1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的计算机编程语言,然后他就这么做了,并实现了(大神的能力)。之所以选中Python作为该编程语言的名字,是因为他是一个叫Monty Python喜剧团体的爱好者,其本意并不是想选条蟒蛇。

Python简介_第2张图片

  • Python第一个公开发行版发行于1991年,所以这年被当作Python的诞生年。

  • Python 源代码遵循 GPL(GNU General Public License)协议,这是一个开源的协议,也就是说你可以免费使用和传播它,而不用担心版权的问题。

  • 前面我们说了Python诞生自1991年,掰掰指头算算都30年了,比1995年的JAVA语言都早了4年,为何大器晚成,现在才发力?

    • 其一,在1990那个年代,计算机性能相比现在差很多,程序执行速度和效率很重要,快速开发不是第一要务,压榨机器性能才是。Python作为一门解释型动态语言,在解释方式上它天生就存在运行速度较慢的问题,因此不被当时编程界看好,其追求开发速度、强调简洁优雅、降低编程门槛的核心理念有点超越当时主流。而时至今日,计算机的硬件性能已经得到数量级的提高,计算能力不再是限制编程语言的最重要的因素,敏捷开发成为生产环境下对语言选择的重要因素,Python很好的满足了这一点,从而得到快速发展。

    • 其二,Python出生不好。作为对比的JAVA出身名门,其东家为SUN,当时互联网的头号公司,类似现在Google的地位,因而得到大力推广,并且有一群能力强、专职、有组织的团队进行开发和维护,所以很快获得成功,普及开来,至今仍然霸占着编程语言的榜首位置。而Python是个人编写的,寒门出身,龟叔没有三头六臂,个人时间精力都是有限的,虽然有一些志愿者帮忙做一些事情,但无疑和JAVA的正规军相比,能量还是要差了很多,这些都导致Python在初期发展得较为缓慢,甚至到如今都还未解决其被诟病的GIL问题。

Python语言特点

简单易学、明确优雅、开发速度快

  • 简单易学:与C和Java比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。先订个小目标爬个小山,然后再往更高的山峰前进。而不像C和JAVA光语言学习本身,对于很多人来说就像珠穆朗玛峰一样高不可攀。

  • 明确优雅:Python的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、维护等都非常容易。一个小小的脚本,用C可能需要1000行,用JAVA可能几百行,但是用Python往往只需要几十行!

  • 开发速度快:当前互联网企业的生命线是什么?产品开发速度!如果你的开发速度不够快,在你的产品推出之前别人家的产品已经上线了,你也就没有生存空间了,这里的真实例子数不胜数。那么,Python的开发速度说第二没人敢称第一!

跨平台、可移植、可扩展、交互式、解释型、面向对象的动态语言

  • 跨平台:Python支持Windows、Linux和MAC os等主流操作系统。

  • 可移植:代码通常不需要多少改动就能移植到别的平台上使用。

  • 可扩展:Python语言本身由C语言编写而成的,你完全可以在Python中嵌入C,从而提高代码的运行速度和效率。你也可以使用C语言重写Python的任何模块,从根本上改写Python,PyPy就是这么干的。

  • 交互式:Python提供很好的人机交互界面,比如IDLE和IPython。可以从终端输入执行代码并获得结果,互动的测试和调试代码片断。

  • 解释型:Python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。

  • 面向对象:Python语言具备所有的面向对象特性和功能,支持基于类的程序开发。

  • 动态语言:在运行时可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言非常具有活力。

“内置电池”,大量的标准库和第三方库

  • Python为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作,这一特点被形象地称作“内置电池(batteries included)”。

  • 在程序员界,有一句话叫做“不要重复造轮子”。什么意思呢?就是说不要做重复的开发工作,如果对某个问题已经有开源的解决方案或者说第三方库,就不要自己去开发,直接用别人的就好。不要过分迷信自己的代码能力,要知道,能作为标准库被Python内置,必然在可靠性和算法效率上达到了目前最高水平,能被广泛使用的第三方库,必然也是经受了大量的应用考验。除非公司要求,不要自己去开发,请使用现成的库。那些造轮子的事情,就交给世界最顶尖的那一波程序员去干吧,没有极致的思维和数学能力,想创造好用的轮子是很难的。

社区活跃,贡献者多,互帮互助

  • 技术社区的存在就相当于程序员手中的指南针,没有指南针,很多时候,碰到了问题,就像无头的苍蝇只能到处乱飞,最终在茫茫的海洋中转晕致死。技术社区可以给我们对语言的学习和使用提供巨大的帮助,无论是前期的学习,还是日后的工作,只要有问题,技术社区的大牛都可以帮我们解决,有这些助力,可以帮我们更好地了解、学习和使用一门语言。技术社区同时还推动Python语言的发展方向,功能需求,促使公司企业更多的使用Python语言,招聘Python程序员。

开源语言,发展动力巨大

  • Python是基于C语言编写的,并且使用GPL开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与Python的开发,促使它更好的发展,被更多的应用,形成良性循环。Python为什么会越来越火就是因为它的开放性,自由性,聚起了人气,形成了社区,有很多人在其中做贡献,用的人越来越多,自然就提高了市场占有率,企业、公司、厂家就不得不使用Python,提供的Python程序员岗位就越来越多,这就是开源的力量。

Python的应用方向

  • 常规软件开发

    • Python支持函数式编程和OOP面向对象编程,能够承担任何种类软件的开发工作,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。

  • 科学计算

    • 随着NumPy, SciPy, Matplotlib等众多程序库的开发,Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛,有更多的程序库的支持。

  • 自动化运维

    • 这几乎是Python应用的自留地,作为运维工程师首选的编程语言,Python在自动化运维方面已经深入人心,比如Saltstack和Ansible都是大名鼎鼎的自动化平台。

  • 云计算

    • 开源云计算解决方案OpenStack就是基于Python开发的,搞云计算的同学都懂的。

  • WEB开发

    • 基于Python的Web开发框架不要太多,比如耳熟能详的Django,还有Tornado,Flask。其中的Python+Django架构,应用范围非常广,开发速度非常快,学习门槛也很低,能够帮助你快速的搭建起可用的WEB服务。

  • 网络爬虫

    • 也称网络蜘蛛,是大数据行业获取数据的核心工具。没有网络爬虫自动地、不分昼夜地、高智能地在互联网上爬取免费的数据,那些大数据相关的公司恐怕要少四分之三。能够编写网络爬虫的编程语言有不少,但Python绝对是其中的主流之一,其Scripy爬虫框架应用非常广泛。

  • 数据分析

    • 在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python是数据分析的主流语言之一。

  • 人工智能

    • Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

Python的使用者

  • 前面讲了这么多先进的当下最前沿的Python技术方向,那么有哪些公司在使用Python呢?

  • 在国内最有名的就是知乎和豆瓣了,它们就是基于Python开发的Web服务。其它的例如百度、阿里、淘宝 、搜狐、金山、腾讯、盛大、网易、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务,几乎所有的互联网企业都在招聘Python程序员。

  • 在国外,更是数不胜数。谷歌的Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、广告等项目都在大量使用Python进行开发。还有Facebook、Twitter等等等等。几乎所有的Linux发行版都内置Python解释器。

Python简介_第3张图片

Python的缺点

  • 我们光说了Python的优点,也得说说它的缺点。任何编程语言都有缺点,Python也不例外。

    • 第一个缺点就是运行速度相对慢点,和C程序相比慢不少,这是解释型语言的通病,你的Python代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以会变慢。而C程序作为编译型语言是运行前直接编译成CPU能执行的机器码,所以非常快。(但同时你可以这么理解,C语言把费时间的活在生产上线之前先花时间干了,所以运行时就快了。)

      • 程序速度不再那么重要,不一定非要追求极致

        • 早些时期CPU比较昂贵,计算资源很吃紧,内存也很贵,程序运行的速度和耗费的时间就很重要。这就是导致计算机科学致力于研究不同算法的效率的原因之一。然而,这已经不再是最重要的因素,因为现在芯片很便宜,而且运行速度有了质的提升。运行时间不再是你最贵的资源。公司最贵的资源现在是员工时间。或者换句话说,就是你。在规定时间内把事情做完比把程序变快更加重要。Python语法简洁,包含大量的标准库和第三方库,用较少的语句就可以完成其它语言上百条语句才能完成的任务,这无疑大大提高了开发的速度和效率,帮助你在尽可能短的时间内完成工作。

    • 第二个缺点就是Python2和Python3的不兼容性

你可能感兴趣的:(python,python,开发语言)