什么是Python?

Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.

Python是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效的面向对象编程。Python优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。

这段出自Python官方文档的第一段,第一句就介绍了Python是一种编程语言,易学且功能强大,正是因为这个特点,使得Python成为了众多热门编程语言中的一种。

Python不仅是易学强大的编程语言,而且支持面向对象,还有高效的数据结构。

Python是一种解释型语言,优雅的语法和动态类型可以大大的提高代码的编写效率。有大量支持库可以使用,可以大大的减少了开发周期。

Python的定位是“优雅”、“明确”、“简单”,对于初学者来说是非常容易入门上手的,无论您是将Python作为工作的语言还是辅助语言,都是非常不错的选择。

Python的起源与发展

Python的诞生可以说是非常戏剧性的,在1989年圣诞节期间,一名叫Guido van Rossum(大家都喜欢叫他龟叔)的人在阿萨姆特丹为了打发圣诞节的舞曲,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《Monty Python’s Flying Circus》(蒙提.派森的飞行马戏团)

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido决心在Python中避免这一错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。Python2于2000年10月16日发布,稳定版本是Python2.7。Python3于2008年12月3日发布,不完全兼容Python2。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。

由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

Python能做什么?

Python可以说在许多领域都能使用,主要的领域由下几点

  • Web 和 Internet开发
  • 科学计算和统计
  • 人工智能
  • 教育
  • 桌面界面开发
  • 软件开发
  • 后端开发

比如现在常常听到的爬虫,还有现在很火的人工智能,大数据等等都是由Python开发的,可以用流传的一句话描述:人生苦短,我用Python,这句话出自Bruce Eckel,原文是:Life is short,you need Python。在后面的教程中,大家将会深深的体会到这句话真正的含有。

Python的优点和缺点

学习任何一门编程语言,都是因为它的一些独特之处,或者它的优越性让使用者着迷,它能解决使用者的很多问题,所以人们在选择自己所喜欢的编程语言。在这我也不会吹牛拍马,现在还没有任何一门编程语言是完美的,它们有各自的优点,必然有缺点,所以在这里来说说Python的有点和缺点。

先说说优点,其实优点在前面已经都说过了。

  • 简单、易学
    Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。正是如此,Python变得非常容易上手。

  • 解释性
    这点是相对于编译性语言而言,比如C语言,C语言的程序可以从源文件转换成计算机所能事变的语言,但是要想C程序能执行,那么就需要通过编译转换,然后在会被计算机识别。而Python作为解释性怨言,你无需关系任何的编译程序,如何编译的问题。你只需要把你的Python程序拷贝到另外一台电脑就能够执行,这也是Python的另外的有点,可移植性性。

  • 面向对象
    这点可以说是优点也可以说不是,因为现在的编程语言都是支持面向对象的编程,但是Python和其他面向对象的编程语言相比,Python以一种非常强大又简单的方式实现面向对象。

  • 可扩展
    Python可以将C或C++语言嵌套在程序里,这使得你在一些需要运行更快或者不希望公开的地方,可以使用C来编写。

  • 丰富的库
    这点是Python为何这么火,这么强大的重要原因,Python的标准库非常的庞大,它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。除了官方提供的标准库意外,第三方的库也非常的丰富,只有你想不到的,没有你搜不到。

说了那么多优点,总该说说缺点了,缺点主要是两点,运行速度和加密问题,其他的一些小缺点可以说完全可以通过其他方法去弥补。

  • 运行速度
    Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。那运行速度慢,为何还那么多人要去用,其实答案很简单,那些应用程序不需要这么快的速度。打个比方,你在网上下载一首音乐,C的执行时间是0.001秒,Python是0.1秒,但是下载是要通过网络去网上下载的,从本地发送请求到服务器,然后返回数据回来这是要时间的,可能网速好的只需要等待1秒,所以,1.001秒和1.1秒的区别,能感觉出来吗?

  • 代码不加密
    代码加不加密,完全是个人观点,如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码发布出去。要从机器码反编译处C代码是不可能的(当初才疏学浅,后来在学习中发现是可以的),所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。但是现在提倡的是开源运动。正是你的开源,让更多人了解到你的优越性,可能会有更多的合作机会。(同样的,其实是可以通过第三方库进行加密)