| Python FAQ1 |
用户设定 |
| ChinesePython Wiki | 中蟒大杂院 | 最近修改 | 标题目录 | 看发表区 | 搜寻/发表 | 站内导航 | 求助 |
Python 是一种即译式的, 互动的, 面向对象的编程语言. 它包含了模组式的操作, 异常处理, 动态资料形态, 十分高层次的动态资料结构, 以及类别的使用. Python 揉合了简单的语法和强大的功能. 它拥有众多的编程介面以操控系统平台以及各类函数库. 利用 c 和 c++ 可以对它进行扩充. 个别的应用软件如果需要有一个可程序化介面也可以利用它来做为扩展语言用. 最后, Python 的可移植度非常高: 它可以在许多的 Unix 类平台上运行, 在 Mac, MS-DOS, 视窗 Windows, Windows NT, OS/2, BeOS, 以至 RISCOS 上都有相关的 Python 版本.
想知道更多, 最好是从 Python 教学资源中的 "入门篇" 看起. (参考下几条问题)
请一并参看第 1.17 条问题. (Python 可以用在哪些地方)
Python 的意思是蟒蛇, 但和这套语言的命名没有关系. Python 的作者除了是一位电脑计算学家外, 也是 BBC 喜剧片 "Monty Python's Flying Circus" (七十年代一套受欢迎的片集)的影迷. 作者在替他的新语言改名时要找一个短的,独一无二的并且带些神秘感的名字, 於是他决定了把这个语言命名为 Python.
Python 没有自己的商标, 你可以随便用蟒蛇, 或是别的什 蛇属, 无论你喜欢它是两尺长还是 16 吨重, 甚至你用一只小老鼠都没有所谓. (译注: 市面上有几本关於 Python 的专书都用了上面所说的动物, 因此作者在这里澄清.)
最新的 Python 源程式码一定可以在 python.org 上取得. 可到 http://www.python.org.download 下载. 至於最近开发中的版本则可以经 SourceForge 透过 CVS 以 anonymous 形式取得, 网址是 http://www.sf.net/projects/python
取得的源码为 gzip 了的 tar 档案. 当中有全部的 C 程式码, LaTeX 格式的说明文件, Python 的函式库模组, 范例和一些有用的自由软件. 在大部份 Unix 类平台上能直接编译安装. (在非 Unix 平台上的使用方法, 请看第 7 节中的问题.
所有的说明文件可以到网上拿取, 有关资料可先从 http://www.python.org/doc/ 找起.
说明文件的 LaTeX 文档已包括在源码包中. 如果你没有 LaTeX 可用, 在上面的网址里可找到已做好的各种格式的现成文件 (如 html 或 postscript).
有关 Python 的中文文件不是很多, 已翻译的有 "教学文件 (Tutorial)", "语言参考手册" (Language Reference), "深入 Python" (Dive into Python). 这些可在 http://www.chinesepython.org/cgi_bin/moingb.cgi/ 上取得. 你也可以购买市面上关於 Python 的中文书.
以下 ftp 站点可以下载 Python:
美国:
欧洲:
澳大利亚:
有一个新闻组, comp.lang.python, 和一个电邮列表. 它们之间是联通的 -- 如果你能读得到新闻组则你不需要申请加入电邮表. 要加入电邮表(python-list@python.org) 请到以下 Mailman 的网站: http://www.python.org/mailman/listinfo/python-list (Mailman 也是用 Python 写成的).
除此之外还有许多其也的 Python 电邮列表, 请到 http://www.python.org/psa/MailingLists.html 参观.
Deja News 保留了有关新闻组的贴文内容, 你可以到 "Python 新闻组搜寻"站, http://www.python.org/search/search_news.html. 该网页上还可连结到别的文件库去.
有的, http://www.python.org/ 是 Python 的官方网站.
是. 在 http://www.python.org/doc/ 中可以找到所有的官方说明文件. 大部分可供即时浏览和下载.
有许多, 更多的正在印制中. 请留意 python.org 的 Wiki -- http://www.python.org/cgi-bin/moinmoin/PythonBooks 上的书单.
至於中文书则市面上才刚刚出现了几本. (译注: 请有心人加上资料.)
如果你不想用 Python 的网站, 也不打算用书 (看前面的问题), 在 Python 的网站上有些相关的文章你可以参考: http://www.python.org/doc/Publications.html
也有一些 -- 请到主站点找有关的连结 http://www.python.org/doc/Hints.html#intros.
Python 的版本号形式是 A.B.C 或是 A.B. 其中 A 是主版本编号 -- 只有当语言本身有很大的转变时才会调大. B 是版本副号, 当程式改变较少时用以区别新旧版本. C 则是小号, 当发行除虫版本时便用. 有关除虫版本的资料请参阅 PEP 6.
Alpha (测试), Beta (调试), release (发布) 建议推出的版本都有其另外的编号后缀. 测试版用 aN, 调试版用 bN, 发布版用 cN, 其中 N 代表一个不太大的数.
按一般的规定, 除非在建议发布版有极大的缺陷, 否则建议发布和正式发布版间不应有任何改动.
有时你会遇到加有 '+' 后缀的版本编号, 例如 "2.2+". 这些版本不曾正式发布过, 它们是从 CVS 软库中直接编译而来的.
你也可以参看 sys.version, sys.hexversion 和 sys.version_info 的说明, 里面有些额外的资料.
所有发布的版本, 包括建议为测试, 调试和发布的各版本推出的消息都会在 comp.lang.python 和 comp.lang.python.announce 这两个新闻组上公告. 这两个新闻组分别和 python-list@python.org, python-announce@pytyon.org 联通. 除此之外, 在 Python 的官方网站 http://www.python.org 上也会公告有关消息.
至於 Python 开发中的最新版本可以透过 CVS 取得. 请上 http://sourceforge.net/cvs/?group_id=5470 .如你不熟悉 CVS 的操作方法, 可以阅读有关的文章, 如 http://linux.oreillynet.com/pub/a/linux/2002/01/03/cvs_intro.html 就有介绍.
很难说有何限制. 拿到源码后随便你干些啥, 唯一的条件是你保留原来的版权声明, 并在你写的有关文件中展示那些声明. 同时, 未得到作者所属的机构的书面同意, 不要在宣传时引用它的名字, 也不要代他们作出任何形式的承诺 (具体的法律字眼请参阅版权声明的原文).
有一点要说清楚的是, 如果你尊守上述的要求, 那就算你利用 Python 作商业用途, 包括售卖它的源码或是执行档, 或者是改进了的 Python 以及在产品中加入 Python (部分或是全部). 另外, 如果你的把它用作商业盈利, 请通知作者因为他也很有兴趣知道.
以下的作者的回忆:
我在 CWI 的 ABC (译按: 另一种即译式语言) 开发组工作时, 学到很多设计程式语言方面的事并且得到许多经验. Python 多方面继承了这一套语言的特性, 如缩排式的分段方法和高层次的数据类等.(当然,在语言的实现细节上两者很不一样.)
我对於 ABC 的某些地方很不以为然, 当然, 它有很多地方是让人喜爱的. 对这些我不喜欢的地方我发现并不能透过扩充 ABC 来满足我的要求 -- 事实上, 难以扩充正正是 ABC 的最大弱点. 与此同时, 我拥有使用 Modula-2+ 的一些经验并且和一些 Modula-3 的设计者们沟通过 (也读了 M3 的报告书). M3 中的异常处理和某些别的句法是 Python 中有关功能的出处.
当时我在 CWI 的 Amoeba 分散操作系统小组工作. 我们需要一个更好的办法来做系统管理工作, 我们并不想用 C 写程式或是用 Bourne shell 写脚本, 因为 Amoeba 有它自己一套调用系统的介面不是用 Bourne shell 可以轻易存取的. 而我在 Amoeba 的异常处理方面的经验便我很清楚的意识到在程式语言中包含错误处理功能的重要程度.
於是我的脑海出现了一套和 ABC 句法类似同时可以呼叫 Amoeba 系统功能的即译语言, 它应该能满足我的要求. 我知道如果我把它设计成只能是 Amoeba 专用的语言并不是聪明的做法, 我需要的是一套更普遍, 并能多方面扩充的语言.
我有大量时间可以干自己想做的活, 於是我决定开始实现我的构想. 在接下来的一年中, 虽然我依然在用工余时间来做开发, Python 已经颇为成功的应用到 Amoeba 计划中了. 同事们给了许多意见, 这些都转变成早期对 Python 的改良和完善工作.
到了 1991 年的 2 月, 就在经过短短一年的开发工作, 我决定把 Python 张贴到 USENET 上去让更多人使用. 后来发生的事情很多人都知道, 都写在 Misc/HISTORY 这个文件中了.
不.
Python 可以用在很多埸合. 当你需要大量的动态调整, 要容易使用, 功能强大并且富弹性的情况, Python 可以发挥很好的功效.
在处理文字方面, Python 的核心功能 (不需任何扩充库的情况下) 较起别的编程语言更为易用而速度相当. 这使 Python 在需要处理字符串的工作 (包括系统管理, CGI 编程) 上成为高效的语言.
当 Python 加上它的标准扩充库 (如 PIL, COM, Numeric, oracledb, kjbuckets, tkinter, win32api, 等) 或是特别扩充库 (你自己写的, 或是用 SWIG 做的, 或是利用 ILU/COBRA/COM 的)后, 它可以变成一个很好的 "胶合语言" 或者叫 "指导语言". 就是指把异质的编程环境和互不相关的软件功能整合处理的工具. 例如把 Numeric 和 oracledb 透过 Python 结合起来你就可以替你的资料库数据做统计分析, 甚至是做谱分析. Python 的简单, 易用以及方便而强大的 C 扩展介面使它成为一种十分优秀的 "胶合语言".
许多开发人员也在写图像用户介面时广泛地采用了 Python.
(译按: 当然可以. 凡是有关 Python 的般性问题都可自由地放上来. 但请注意特殊问题或技巧或是和官方问题集差别太大的问题请贴到本站其他的问题集中.)
在 Unix 上, 首选 Emacs/XEmacs. 它有个专为编写 Python 程式用的模式, 其设定档可以在 Python 的源程式码中找到 (Misc/python-mode.el). 在 XEmacs 的安装时已包括了这个设定 (至於 FSF Emacs 方面我们正在和他们商量有关的法律细节以便这个设定也可以包括在软件发布版中.) 这个设定的详情请
到 http://www.python.org/emacs/python-mode/index.html
其他的选择也不少, 无论是 Unix, Windows, Micintosh 都有. Richard Jones 根据新闻组的内容综合了一张表,
到 http://www.bofh.asn.au/~richard/editors.html
有几篇文章, 另外起码一本书. 所有适合 Python 初学者看的资料都综合成一个网页,
到 http://www.python.org/doc/Newbies.html
至於中文的资料, 本站也有一些, 请到 'Python 入门' 页面.
现时位於阿姆斯特丹, 服务由 XS4ALL 所提供.
现时位於香港, 由 NetZide 所提供.
我听过有两种读法, 皆为双音节,
首音为 "pi" (圆周率), 尾音为 "夫 on" (on 为英文的 on/off 的 on),
首音为 "pi" (圆周率), 尾音为 "夫 en" (en 为韵母 an/en/in 的 en, 或英文 one/two/three 的 one).