momoxiaoming

个人站

爱分享,爱编程,欢迎来到我的个人站~


从零开始学Python(一):Python语言的背景,发展,以及前景.

本章是本系列的第一章,也是博主第一次写python的相关的文章,这个系列打算出20-30篇,尽量会保持周更3篇左右的幅度,总结一下自己python的学习之路,也希望能够帮助到想学却又不知道如何开始学习python的人。由于本人知识有限,如果博文中有相关的纰漏或者错误,忘海涵!

本文的目录结构:

一.Python语言简介

新接触的一门语言的时候,我们应该对我们将要学习的语言有个大致的了解,也许你常常听过python,总是听别人说有多牛多牛逼,但可能你心里也没有个清晰的认识,为啥python牛逼,她又是为何能让全球的开发者为之疯狂呢?不要着急,听博主慢慢道来.

1.何为Python?

我们引用官网一句话:Python是一个高层次的结合了解释性,编译性,互动性和面向对象的脚本语言.她的设计具有很强的可读性,她比其他语言更有特色的语法结构!(何为解释性,编译性,下面博主会详解)

2.python的背景以及历史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

3.Python语言的特点

  • 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  • 易于阅读:Python代码定义的更清晰。
  • 易于维护:Python的成功在于它的源代码是相当容易维护的。
  • 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好
  • 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断
  • 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  • 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 数据库:Python提供所有主要的商业数据库的接口。
  • GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  • 可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得”脚本化”的能力。

3.Python传播速度

上图是截止2017年8月,国内互联网IT行业编程语言排行,可以看到python以及荣登榜单第五(现在好像第四了),可想而知Python是有多么的受大家欢迎.

4.Python的运用领域

创始人guido希望Python在每个领域都能火起来,而Python也不负众望,已经在云计算,云服务,人工智能,web,科学计算,大数据等领域站稳了脚跟.在未来十年的时间里可以Python会越来越火,为了跟上时代的潮流,技多不压身,学习和了解下总是没有错的!

Python程序的运行原理

学习Python前,我们先来了解下Python程序的运行原理.这样有助于我们后期的学习中了解这个程序是怎么运行的,以及对相关的原理有个大致的认识. Python程序运行一般包含以下四个步骤:

  • 词法分析
  • 句法分析
  • 编译
  • 解释  

词法分析:词法分析的工作就是将输入的原始代码分解成一些符号,例如标识符,关键字,操作符等,这个过程是编译器自动运行,一般不会产生任何错误.

句法分析:词法分析之后,程序会接收到分析之后的符号,并且用一种结构来展现他们之间的关系(使用的是抽象语法树)

编译:在句法分析后,Python会接收这颗抽象语法树,并将它转化为一个或多个代码对象,通过编译器编译出==字节码(也就是中间码)==.(除了复用性较高的字节码.其他字节码都会在程序运行完后被删除)

解释:进过编译得到字节码之后,需要让我们程序真正的在平台上跑起来,还需要对字节码转为机器能够识别的==机器码==,这个过程叫做解释.

Tips:机器码和字节码的区别

1.机器码是能够在处理器上直接执行的执行码,每条执行控制cpu的工作.简而言之,机器码运行速度要比字节码快很多.

2.字节码是需要在虚拟机这个抽象的计算机中执行,每条执行有虚拟机去处理,最后再由虚拟机转换成机器码和计算机本身去交互,也正是有了中间这个过程,导致字节码运行起来没有机器码那么迅速.

单从语言的本身的执行效率来讲,编译型的语言一般都要比解释型的语言运行效率更低.举个简单的例子: java<Python<C

Q&A

对于Python语言的介绍就先到此结束了,理论再多,也需要实践.下一篇我们开始学习下Python的环境安装以及运行我们的第一个HelloWord程序!