认识 Python

一、 Python 的起源

1、Python的作者是Guido van Rossum(⻳叔)

Python 的创始⼈为吉多·范罗苏姆(Guido van Rossum),荷兰⼈。Guido知道如何⽤C语⾔写出⼀个功能,但整个编写过程需要耗费⼤量的时间,即使他已经准确的知道了如何实现。这种编程⽅式让Guido感到苦恼。

他的另⼀个选择是shell。Bourne Shell作为UNIX系统的解释器已经⻓期存在。UNIX的管理员们常常⽤shell去写⼀些简单的脚本,以进⾏⼀些系统维护的⼯作,⽐如定期备份、⽂件系统管理等等。shell可以像胶⽔⼀样,将UNIX下的许多功能连接在⼀起。许多C语⾔下上百⾏的程序,在shell下只⽤⼏⾏就可以完成。然⽽,shell的本质是调⽤命令。它并不是⼀个真正的语⾔。⽐如说,shell没有数值型的数据类型,加法运算都很复杂。总之,shell不能全⾯的调动计算机的功能。

Guido希望有⼀种语⾔,这种语⾔能够像C语⾔那样,能够全⾯调⽤计算机的功能接⼝,⼜可以像shell那样,可以轻松的编程。
他希望这个新的叫做Python的语⾔,能符合他的理想:创造⼀种C和shell之间,功能全⾯,易学易⽤,可拓展的语⾔

2、Python正式诞⽣于1991年

1991年,第⼀个Python编译器诞⽣。它是⽤C语⾔实现的,并能够调⽤C语⾔的库⽂件。从⼀出⽣,Python已经具有了 :类,函数,异常处理,包含表和词典在内的核⼼数据类型,以及模块为基础的拓展系统。

Python语法很多来⾃C,但⼜受到ABC语⾔的强烈影响。来⾃ABC语⾔的⼀些规定直到今天还富有争议,⽐如强制缩进。 但这些语法规定让Python容易读。另⼀⽅⾯,Python聪明的选择服从⼀些惯例,特别是C语⾔的惯例,⽐如回归等号赋值。Guido认为,如果“常识”上确⽴的东⻄,没有必要过度纠结。

Python从⼀开始就特别在意可拓展性。Python可以在多个层次上拓展。从⾼层上,你可以直接引⼊. py⽂件。在底层,你可以引⽤C语⾔的库。Python程序员可以快速的使⽤Python写. py⽂件作为拓展模块。但当性能是考虑的重要因素时,Python程序员可以深⼊底层,写C程序,编译为.so⽂件引⼊到Python中使⽤。Python就好像是使⽤钢构建房⼀样,先规定好⼤的框架。⽽程序员可以在此框架下相当⾃由的拓展或更改。

Python语⾔以对象为核⼼组织代码,⽀持多种编程范式,采⽤动态类型,⾃动进⾏内存回收。Python⽀持解释运⾏,并能调⽤C库进⾏拓展。Python有强⼤的标准库。由于标准库的体系已经稳定,所以Python的⽣态系统开始拓展到第三⽅包。这些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,将Python升级成了物种丰富的热带⾬林。

Python从其他语⾔中学到了很多,⽆论是已经进⼊历史的ABC,还是依然在使⽤的C和Perl,以及许多没有列出的其他 语⾔。可以说,Python的成功代表了它所有借鉴的语⾔的成功。同样,Ruby借鉴了Python,它的成功也代表了Python某些⽅⾯的成功。每个语⾔都是混合体,都有它优秀的地⽅,但也有各种各样的缺陷。同时,⼀个语⾔“好与不好”的评 判,往往受制于平台、硬件、时代等等外部原因。程序员经历过许多语⾔之争。其实,以开放的⼼态来接受各个语⾔,说不定哪⼀天,程序员也可以如Guido那样,混合出⾃⼰的语⾔。

3、Python的解释器如今有多个语⾔实现

我们常⽤的是CPython(官⽅版本的C语⾔实现),其他还有Jython(可以运⾏在Java平台)、IronPython(可以运⾏在.NET和Mono平台)、PyPy(Python实现的,⽀持JIT即时编译)

 4、Python的版本

Python⽬前有两个版本,Python2和Python3,最新版分别为2.7.14和3.6.4

二、Python的优缺点

优点

1、简单————Python是⼀种代表简单主义思想的语⾔。阅读⼀个良好的Python程序就感觉像是在读英语⼀样,尽管这个英语的要求⾮常严格!Python的这种伪代码本质是它最⼤的优点之⼀。它使你能够专注于解决问题⽽不是去搞明⽩语⾔本身

2、易学————就如同你即将看到的⼀样,Python极其容易上⼿。前⾯已经提到了,Python有极其简单的语法

3、免费、开源————Python是FLOSS(⾃由/开放源码软件)之⼀。简单地说,你可以⾃由地发布这个软件的拷⻉、阅读它的源代码、对它做改动、把它的⼀部分⽤于新的⾃由软件中。FLOSS是基于⼀个团体分享知识的概念。这是为什么Python如此优秀的原因之⼀——它是由⼀群希望看到⼀个更加优秀的Python的⼈创造并经常改进着的。

4、⾼层语⾔————当你⽤Python语⾔编写程序的时候,你⽆需考虑诸如如何管理你的程序使⽤的内存⼀类的底层细节

5、可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够⼯作在不同平台上)。如果你⼩⼼地避免使⽤依赖于系统的特性,那么你的所有Python程序⽆需修改就可以在下述任何平台上⾯运⾏。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚⾄还有PocketPC、Symbian以及Google基于linux开发的Android平台!

6、解释性————这⼀点需要⼀些解释。⼀个⽤编译性语⾔⽐如C或C++写的程序可以从源⽂件(即C或C++语⾔)转换到⼀个你的计算机使⽤的语⾔(⼆进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运⾏你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运⾏。⽽Python语⾔写的程序不需要编译成⼆进制代码。你可以直接从源代码运⾏程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使⽤的机器语⾔并运⾏。事实上,由于你不再需要担⼼如何编译程序,如何确保连接转载正确的库等等,所有这⼀切使得使⽤Python更加简单。由于你只需要把你的Python程序拷⻉到另外⼀台计算机上,它就可以⼯作了,这也使得你的Python程序更加易于移植。

7、⾯向对象————Python既⽀持⾯向过程的编程也⽀持⾯向对象的编程。在“⾯向过程”的语⾔中,程序是由过程或仅仅是可重⽤代码的函数构建起来的。在“⾯向对象”的语⾔中,程序是由数据和功能组合⽽成的对象构建起来的。与其他主要的语⾔如C++和Java相⽐,Python以⼀种⾮常强⼤⼜简单的⽅式实现⾯向对象编程。

8、可扩展性————如果你需要你的⼀段关键代码运⾏得更快或者希望某些算法不公开,你可以把你的部分程序⽤C或C++编写,然后在你的Python程序中使⽤它们。

9、丰富的库————Python标准库确实很庞⼤。它可以帮助你处理各种⼯作,包括正则表达式、⽂档⽣成、单元测试、线程、数据库、⽹⻚浏览器、CGI、FTP、电⼦邮件、XML、XML-RPC、HTML、WAV⽂件、密码系统、GUI(图形⽤户界⾯)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可⽤的。这被称作Python的“功能⻬全”理念。除了标准库以外,还有许多其他⾼质量的库,如wxPython、Twisted和Python图像库等等。

10、规范的代码————Python采⽤强制缩进的⽅式使得代码具有极佳的可读性。

缺点

1. 运⾏速度,有速度要求的话,⽤C++改写关键部分吧。

2. 国内市场较⼩(国内以python来做主要开发的,⽬前只有⼀些web2.0公司)。但时间推移,⽬前很多国内软件公司,尤其是游戏公司,也开始规模使⽤他。

3. 中⽂资料匮乏(好的python中⽂资料屈指可数)。托社区的福,有⼏本优秀的教材已经被翻译了,但⼊⻔级教材多,⾼级内容还是只能看英语版。

4. 构架选择太多(没有像C#这样的官⽅.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中⼩型web程序天下⽆敌)。不过这也从另⼀个侧⾯说明,python⽐较优秀,吸引的⼈才多,项⽬也多。

三、Python应⽤场景

1、Web应⽤开发

Python经常被⽤于Web开发。⽐如,通过mod_wsgi模块,Apache可以运⾏⽤Python编写的Web程序。Python定义了WSGI标准应⽤接⼝来协调Http服务器与基于Python的Web程序之间的通信。⼀些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

2、操作系统管理、服务器运维的⾃动化脚本

在很多操作系统⾥,Python是标准的系统组件。 ⼤多数Linux发⾏版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运⾏Python。有⼀些Linux发⾏版的安装器使⽤Python语⾔编写,⽐如Ubuntu的Ubiquity安装器,Red HatLinux和Fedora的Anaconda安装器。Gentoo Linux使⽤Python来编写它的Portage包管理系统。Python标准库包含了多个调⽤操作系统功能的库。通过pywin32这个第三⽅软件 包,Python能够访问Windows的COM服务及其它Windows API。使⽤IronPython,Python程序能够直接调⽤.Net Framework。⼀般说来,Python编写的系统管理脚本在可读性、性能、代码重⽤度、扩展性⼏⽅⾯都优于普通的shell脚本。

3、科学计算

NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。

4、桌⾯软件

PyQt、PySide、wxPython、PyGTK是Python快速开发桌⾯应⽤程序的利器。

5、服务器软件(⽹络软件)

Python对于各种⽹络协议的⽀持很完善,因此经常被⽤于编写服务器软件、⽹络爬⾍。第三⽅库Twisted⽀持异步⽹络编程和多数标准的⽹络协议(包含客户端和服务器),并且提供了多种⼯具,被⼴泛⽤于编写⾼性能的服务器软件。

6、游戏

很多游戏使⽤C++编写图形显示等⾼性能模块,⽽使⽤Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更⼩;⽽Python则⽀持更多的特性和数据类型。

7、构思实现,产品早期原型和迭代

YouTube、Google、Yahoo!、NASA都在内部⼤量地使⽤Python。

 
 
 
 
 
 
原文地址:https://www.cnblogs.com/zwh0910/p/15241430.html