当前位置:   article > 正文

python语言,Python语言发展史_python历史

python历史

Python语言发展史

每个编程语言的作者都是一个技术传奇,Python语言的发明者Guido van Rossum也不例外。他是荷兰人,1982年从阿姆斯特丹大学毕业,获得了数学和计算机两个硕士学位,他最爱做的事情就是编写代码。在那个时代,硬件资源弥足珍贵,这就需要程序员们在使用C语言、Fortran语言开发时,深入理解计算机的运行机制,“榨干”计算机硬件的性能。

1989年的圣诞节,Guido van Rossum开始编写Python语言的编译器,如图1-1所示。Python这个名字,来自Guido van Rossum所挚爱的电视剧Monty Python’s Flying Circus。他希望Python成为一门功能全面、易学易用,且可拓展的编程语言。

在这里插入图片描述

1991年,第一款Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。那时的Python便已经具有类、函数、异常处理,包含列表和字典在内的核心数据结构,以及以模块为基础的拓展系统。

Python的语法很多来自C语言,同时也受到ABC语言的强烈影响。虽然ABC语言的一些规范至今还饱受争议(比如强制缩进),但这些语法规范使Python更易读。

Python语言不仅遵从一些语言惯例,并从一开始就特别注重可拓展性,使其可以在多个层次上拓展。在高层,可以直接引入.py文件;在底层,可以引用C语言的库。这样,程序员就可以使用Python快速地写出.py文件作为拓展模块。

2000年5月,Guido和Python核心开发团队转移到BeOpen.com,组建了BeOpen PythonLabs团队。同年10月,PythonLabs团队转向Digital Creations。2001年,非营利组织Python软件基金会(PSF)成立。

Python目前有两个版本:Python 2.7与Python 3.6。在撰写本书期间,最新版的Python是2018年10月20日发布的Python 3.7.1。本书代码基于Python 3开发,均可在Python 3下运行。

1.2 Python语言特点

Python是一款开源的编程语言,这一点很重要,它以此吸引了越来越多的使用者。使用者可以自由发布、复制、阅读Python源代码,也可以对它进行改动,甚至把它的一部分用于新的开源软件,这反过来又拓展了Python的边界,形成了良性循环。

Python拥有丰富的库,并且可移植性非常强,配合使用C/C++等语言,能胜任很多工作,如科学计算、机器学习、深度学习等。

1.简洁、优雅

代码是写给人看的,所以在所有程序中,代码都应该尽可能简洁,并且语法和风格应保持前后一致。一段好的Python程序代码就如同一篇优雅的文章,处处能体现其简洁的语言哲学,这让使用者可以专注于解决问题而不是去搞明白语言本身。

2.易学、易用

Python语法简单、模块丰富,极易上手。

3.免费、开源

Python是FLOSS(自由/开放源码软件)之一,Python语言本身及其科学计算模块都可免费使用。简单地说,你可以自由地发布、复制、阅读Python源代码,也可以对它进行改动,甚至把它的一部分用于新的开源软件。

4.高级语言

当使用Python语言编写程序时,用户无须考虑诸如管理程序内存一类的底层细节。

5.可移植性

Python是开源的,因此经过改动,它可以移植到许多其他平台上。而且,在一个平台上写完Python程序,迁移到另一个支持Python的平台上运行时,输出结果几乎是一样的。Python背后的设计原则使得它可以高度扩展,这就解释了为什么现在有那么多可以解决各种任务的高级程序库。

6.解释性

使用编译性语言(如C或C++)开发的程序,可以从源文件(即C或C++语言)转换为计算机使用的语言(机器语言及二进制指令集)。这个过程通过编译器和不同的标记、选项来实现。当运行程序时,连接/转载器软件把程序从硬盘复制到内存中运行。而使用Python语言编写的程序不需要编译成二进制代码,直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成字节码的中间形式,再把它翻译成计算机使用的机器语言运行。

事实上,使用Python开发程序的用户不再需要担心如何编译程序、如何确保连接转载正确的库等,所有这一切使得开发工作变得更简单。你只需要把Python程序复制到另外一台计算机上,它就可以工作了。

7.面向对象

Python既支持面向过程的编程,也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言(如C++和Java)相比,Python以一种非常强大又简单的方式实现面向对象编程。

8.可扩展性

Python具有与大多数主流技术相互操作的交互能力。我们可以调用不同编程语言的函数、代码、程序包和对象,例如Matlab、C、C++、R、Fortran以及其他语言。还有许多方法可以实现这种交互能力,例如Ctypes、Cython和SWIG等。如果你不想公开某段关键代码,可以用C或C++语言编写这部分,然后在Python程序中使用它们。

9.丰富的库

Python的标准程序库里有丰富的程序包。作为一门可扩展的语言,Python也为不同需求的用户提供了大量成熟的个性化程序库:比如本书中涉及的NumPy科学计算和数学基础包,包括统计学、线性代数、金融操作等;SciPy模块是基于NumPy的专注科学计算的模块,包括微积分运算,微分方程求解等数值计算;Pandas是专注于数据分析的模块,提供了全面系统的支持;Matplotlib是功能强大的绘图模块;Sklearn(Scikit-Learn)是用于数学建模的科学研究模块,通常被称为机器学习模块,支持回归、聚类和分类等算法。

除了具备常规的计算功能,上述特性让Python比那些只专注于计算的编程语言(如Fortran、Matlab和R语言等)更加通用和便捷,因此Python的适用范围极广。

1.3 Python语言主要应用领域

Python可以应用于众多领域,如数据分析、网络服务、图像处理和科学计算等领域。

1.科学计算

科学计算(scientific computation)也被称为数值计算(numerical computation)或科学计算法。科学计算是指应用计算机处理科学研究和工程技术中所遇到的数学计算,其计算过程主要包括建立数学模型、建立求解的计算方法和计算机实现3个阶段。

科学计算是一门交叉学科。从本书介绍的Python的特点来看,Python在科学计算方面有着巨大的优势。2018年诺贝尔经济学奖的共同获得者保罗·罗默,62岁的经济学家,一直在使用编程语言Python。Python在科学计算和科学研究方面,有NumPy、SciPy、Pandas和Matplotlib程序库,可以帮助使用者在计算巨型数组、矢量分析、神经网络等方面高效率地完成工作。尤其是在教育科研方面,Python可以发挥出独特的优势。

2.Web开发

在Web开发方面,Python也具有独特的优势。首先,Python比JavaScript和PHP在语言层面更为完备,而且对于同一个开发需求能够提供多种方案。其次,Python库的内容丰富,使用方便,并且Python在Web方面也有自己的框架,如django和flask等。Python支持最新的XML技术,而且数据处理的功能较为强大,适合开发小而精的Web项目。

3.人工智能应用

谁会成为人工智能(AI)时代的第一开发语言?这已是一个不需要争论的问题。如果说在3年前,MATLAB、Scala、R、Java和Python还各有机会,局面尚且不清楚,那么在今天,趋势已经非常明显了,特别是Google开源了TensorFlow,Facebook开源了PyTorch之后。在自然语言处理、计算机视觉等方面,Python成为了AI时代程序员必修的语言。

Python的应用不仅限于上述三个方面,它的应用领域十分广泛,如网络爬虫、数据分析、Linux/Unix运维、桌面软件、游戏开发等都有其相应的应用场景。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号