可扩充性可说是Python做为一种编程语言的特点。新的内置模块(module)能够用C 或 C++写成。而咱们也可为现成的模块加上Python的接口。Python可使用户避免过度的语法的羁绊而将精力主要集中到所要实现的程序任务上。
Python也被称为是一门清晰的语言。由于它的做者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就行了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:
There should be one-- and preferably only one --obvious way to do it.
有意思的是,这正好和Perl语言(另外一种功能相似的高级
动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)彻底相反。这彷佛是人们常把Perl和Python互相比较的重要缘由。
Python语言是一种清晰的语言的另外一个意思是,它的做者有意的设计限制性很强的语法,使得很差的编程习惯(例如if语句的下一行不向右缩进)都不能经过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。
例如if语句:
if age<21:
print "You cannot buy wine!\n"
print "But you can buy chewing gum.\n"
print "this is outside if\n"
一个和其余大多数语言(如C)的区别就是,一个模块的界限,彻底是由每行的首字符在这一行的位 置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引发过争议。由于自从C这类的语言诞生后,语言的 语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不能否认的是,经过强制程序员们缩进(包括if,for和函数定义等全部须要使 用模块的地方),Python确实使得程序更加清晰和美观。
另外Python在其余部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,而且被大量用户所欢迎的、用途普遍的语言。Python直接编写的程序段有时运行效率甚至高于用C编写的程序。
优势
简单————Python是一种表明简单主义思想的语言。阅读一个良好的Python程序就感受像是在读英语同样,尽管这个英语的要求很是严格!Python的这种伪代码本质是它最大的优势之一。它使你可以专一于解决问题而不是去搞明白语言自己。
易学————就如同你即将看到的同样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你能够自 由地发布这个软件的拷贝、阅读它的源代码、对它作改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为何 Python如此优秀的缘由之一——它是由一群但愿看到一个更加优秀的Python的人创造并常常改进着的。
高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性————因为它的开源本质,Python已经被移植在许多平台上(通过改动使它可以工 做在不一样平台上)。若是你当心地避免使用依赖于系统的特性,那么你的全部Python程序无需修改就能够在下述任何平台上面运行。这些平台包括 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、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!
解释性————这一点须要一些解释。一个用编译性语言好比C或C++写的程序能够从源文件(即 C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程经过编译器和不一样的标记、选项完成。当你运行你的程序的时候,链接/ 转载器软件把你的程序从硬盘复制到内存中而且运行。而Python语言写的程序不须要编译成二进制代码。你能够直接从源代码 运行 程序。在计算机内部,Python
解释器把 源代码转换成称为字节码的中间形式,而后再把它翻译成计算机使用的机器语言并运行。事实上,因为你再也不须要担忧如何编译程序,如何确保链接转载正确的库等 等,全部这一切使得使用Python更加简单。因为你只须要把你的Python程序拷贝到另一台计算机上,它就能够工做了,这也使得你的Python程 序更加易于移植。
面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语 言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其余主要的语言如 C++和Java相比,Python以一种很是强大又简单的方式实现面向对象编程。
可扩展性————若是你须要你的一段关键代码运行得更快或者但愿某些算法不公开,你能够把你的部分程序用C或C++编写,而后在你的Python程序中使用它们。
可嵌入性————你能够把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
丰富的库————Python标准库确实很庞大。它能够帮助你处理各类工做,包括正则表达式、 文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户 界面)、Tk和其余与系统有关的操做。记住,只要安装了Python,全部这些功能都是可用的。这被称做Python的“功能齐全”理念。除了标准库以 外,还有许多其余高质量的库,如wxPython、Twisted和Python图像库等等。
归纳————Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特点。
缺点
1. 强制缩进
这也许不该该被称为局限,可是它用缩进来区分语句关系的方式仍是给不少初学者带来了困惑。即使是颇有经验的Python程序员,也可能陷入陷阱当中。最多见的状况是tab和空格的混用会致使错误,而这是用肉眼没法分别的。
2. 单行语句和命令行输出问题
不少时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,能够较为方便的在shell下完成简单程序,不须要如Python同样,必须将程序写入一个.py文件。(对不少用户 而言这也不算是限制)
NO.1 运行速度(虽然比java快,但无法和须要编译的语言相比)。有速度要求的话,用C++改写关键部分吧。
NO.2 国内市场较小(国内以python来作主要开发的,目前只有一些
web2.0公司)。但时间推移,目前不少国内软件公司,尤为是游戏公司,也开始规模使用他。
No.3 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容仍是只能看英语版。
NO.4 构架选择太多(没有像C#这样的官方.net构架,也没有像ruby因为历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另外一个侧面说明,python比较优秀,吸引的人才多,项目也多。
“七”乐无穷,尽在新浪新版博客,快来体验啊~~~请点击进入~html