首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


Python

维库,知识与思想的自由文库

(重定向自Python编程语言)
跳转到: 导航, 搜索
Python
编程范型: multi-paradigm
面市時間: 1991年
設計者: Guido van Rossum
實作者: Python Software Foundation
最近釋出日期: 2.5.1 / 2007年4月18日
型態系統: Strong, dynamic ("duck")
主要實作產品: Python(即CPyhton), Jython, IronPython, PyPy
衍生副語言: Stackless Python
啟發語言: ABC, C語言, Haskell, Icon, Java, Lisp, Modula-3, Perl, Smalltalk, Tcl
影響語言: Ruby, Boo, Groovy
作業系統: 跨平台
許可證: Python Software Foundation License
Website: www.Python.org


Python,是一种面向对象、直譯式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。

这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

目录

[编辑] 发展历史

Python的创始人为Guido van Rossum1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飛行馬戲團的爱好者。

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

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

[编辑] 作为編程語言的设计定位

雖然 Python 可能被粗略地分類為「脚本语言」(scripting language),但實際上一些大規模軟件開發計劃例如 Zope, Mnet 及 BitTorrentGoogle也廣泛地使用它。 Python 的支持者較喜歡稱它為一種高階動態編程語言,原因是「脚本语言」泛指僅作簡單編程任務的語言,如 shell scripts、JavaScript等只能處理簡單任務的編程語言,並不能與Python相提並論。

[编辑] Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

<source lang="Python">

  1. !/usr/bin/env python

print "Hello, world!" </source>

Python 也可以單步直譯執行。執行 Python 直譯器進入互動式命令列的環境,你可以在提示符號 >>> 旁輸入 print "Hello, world!",按 Enter 鍵輸出結果:

<source lang="Python"> >>> print "Hello, world!" Hello, world! </source>

[编辑] 语言特色

Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器,我们用的比较多的是C版本的Python,也就是使用C语言实现的Python解释器,除此之外还有使用Java实现的Jython和使用.NET实现的IronPython,这些实现可以使Python用户充分利用己有的Java.NET资源。

同时,Python支持几乎所有常用的操作系统,包括:Windows/DOSMacintoshLinuxFreeBSD。及很多不常用的操作系统,包括AIX、AS/400 (OS/400)、BeOS、OS/2、OS/390与z/OS、Palm OS、PlayStation与PSP、Psion、QNX、RISC OS、Series 60、Sparc Solaris、VMS、VxWorks、Windows CE或Pocket PC、Sharp Zaurus、MorphOS等。

可扩充性可說是Python作為一種編程語言的特色。新的內置模块(module)可以用C 或 C++寫成。而我們也可為現成的模块加上Python的界面。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。

因此Python具有非常庞大的程序库,通过它们可以快速完成绝大部分常用的任务,如:从某个URL中获取信息、正则表达式、获得某个文件或字符串MD5特征字符串、多线程XMLHTML的分析等。

Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Python资深开发者Tim Peters所作的Python格言(The Zen of Python)[1]里面表述为:

There should be one-- and preferably only one --obvious way to do it.


另外,在 Chris DiBona(Google 開源碼網站負責人)和 Leo Laporte(Twit 網站創始人) 的訪談中,Guido van Rossum 也提出一個口號[2]

There is only one way to do it.(做一件事情只有一个方法。)


有意思的是,这正好和Perl 語言(另一种功能类似的高级动态语言)的中心思想TMTOWTDIThere's More Than One Way To Do It.)完全相反,这似乎是人们常把Perl和Python互相比较的重要原因。

著名Python培训专家Mark Lutz则表示,Peters的话中最值得一提的是[3]

Explicit is better than implicit.(明言胜于暗示。)


这句话在Python用户社群中通常简写作EIBTIExplicit Is Better Than Implicit.)。Lutz认为这一特色性原则是Python和其他各种编程语言之间最重要的区别。

Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。

例如 if 语句: <source lang="Python"> if age<21:

   print "You cannot buy wine!\n"
   print "But you can buy chewing gum.\n"

print "this is outside if\n" </source>

一个和其他大多数语言(如C語言)的区别就是,一个语句块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{ }来明确的定出语句块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序设计语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。

另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。

[编辑] 各种实现

  • CPythonClassic Python,也就是原始的经典Python实现,需要区别于其他实现的时候才以CPython称呼)
  • Jython(原名JPython
  • PyPy

[编辑] 集成开发环境

适用于Python的集成开发环境(IDE)软件,除了标准二进制发布包所附的IDLE之外,还有许多其他选择。其中有些软件设计有语法着色、语法检查、运行调试、自动补全、智能感知等便利功能。由于Python的跨平台出身,这些软件往往也具备各种操作系统的版本或一定的移植性。

专门为Python设计的IDE软件:

  • IDLE:Python“标准”IDE
  • KomodoKomodo Edit:后者是前者的免费精简版
  • PythonWinActivePython软件包的IDE,仅适用于Windows
  • SPE(Stani's Python Editor):功能较多的自由软件,依赖wxPython
  • Ulipad:功能较全的自由软件,依赖wxPython;作者是中国Python高手limodou
  • WingIDE:可能是功能最全的IDE,但不是自由软件

有相应插件的通用IDE软件(使用难度往往较大):

另外,诸如EditPlusUltraEditPSPad等通用的程序员文本编辑器软件也能对Python代码文本作出一定解释,但是否够得上集成开发环境的水平,尚有待评估。

[编辑] 著名应用

[编辑] 從◇◇◇語言到 Python

[编辑] 外部链接

[编辑] 参考文献

  1. 打开任何较近的Python标准发行版的交互式解释器,在>>>提示符后输入import this(导入this模块)并执行,即可看到The Zen of Python全文。
  2. 【聽譯大師說話】Python 創始人訪談錄2:Python 的起源、特点和未來。
  3. Mark Lutz. Programming Python[M]. 3rd Edition. O'Reilly Media, Inc., 2006: 第23页. ISBN 9780596009250

bug:Python

其它语言
AD Links