Python 的技术优势是什么?—— 以 Monty Python 命名
好吧,这其实并不是一个技术优势。它的确看起来是一个在 Python 世界里令人惊讶的保存很好的秘密,我希望提前分享。尽管在 Python 的书籍和图标上有各种爬行动物。但实际上 Python 是以英国的喜剧团体 Monty Python 命名的。他们是 20 世纪 70 年代 BBC 喜剧系列剧集 Monty Python’s Flying Circus 和 一些随后的标准长度的电影(包括 Monty Python and the Holy Grail)的制作者,这些作品在当前仍广为流行。Python 的原作者和许多软件开发者一样是 Monty Python 的粉丝(的确,在这两个领域似乎有某种对称性。。。)。 这个剧集对 Python 的遗留影响不可避免地给 Python 的代码示例添加了幽默感。比如,传统的通用变量名 “foo” 和 “bar” 变成了在 Python 世界中的 “spam” 和 “egg” 。偶尔出现的 “Brian”,“ni” 和 “Shrubberry” 同样要得益于他们的同名事物。这种影响甚至扩大到了整个 Python 社区。Python 会议上的一些事件经常被宣传为 “The Spanish inquisition”(剧集中的一个小品)。如果你熟悉这个剧集,对所有这些就会感很开心,但如果不熟悉,就没有那么开心。你不需要熟悉 Monty Python 的作品来理解引用它的一些例子(包括许多你将在本书里面看到的),但至少你知道他们的起源。(嘿,我已经警告过你了。) 本文章首发在 LearnKu.com 网站上。Python 是如何与 语言 X 比较的?
最后,将 Python 放在你已经知道的背景下,人们有时将 Python 和其他语言如 Peal,Tcl 和 Java 进行比较。这一节。总结了这种比较的一些共识。我想提前声明我不喜欢通过贬低对手来赢得胜利 —— 这样做不长久,而且并不是我的目标。更重要的是,这并不是一个零和游戏 —— 大多数程序员在他们的职业生涯中都会使用多种语言。然而,编程工具提供了值得考虑的选择和妥协。毕竟如果 Python 不提供超出替代品的东西,那么它不会一开始就一直被使用。 我们之前已经谈论过性能的妥协,所以这里我们将关注功能。虽然其他语言也是值得知晓和使用的有用工具,但许多人发现 Python:- 比 Tcl 更强大。对 “大规模编程的” 的强大支持使得它适合开发更大的系统,并且它的应用程序工具库也更广。
- 比 Pearl 更可读。Python 语法清晰,设计简单一致。这让 Python 更可重用和可维护,并且减少了程序的 bug。
- 使用起来比 Java 和 C# 更简单。Python 是一门脚本语言,但 Java 和 C# 都从更大的 OOP 系统语言如 C++ 继承了许多的复杂性和语法。
- 使用起来比 C++ 更简单。Python 的代码比完成同样工作的 C++ 更简单,通常是它大小的 1/3 到 1/5。然而作为一门脚本语言, Python 可以发挥多种不同的作用。
- 比 C 更简单和 高层次。与底层的硬件架构脱离,使得代码更简单,构造地更好,比 C (C++ 的 祖先)更容易理解。
- 比 VB 更强大、通用、跨平台。Python 是一个功能更丰富的语言,应用得更广泛,并且它的开源特性也意味着不会被一个单独的公司所控制。
- 比 PHP 更可读和更通用。 Python 也可以是用来构建网站,但是它也能应用到几乎其他每一个计算机领域,从机器人到电视,动画和游戏。
- 比 Javascript 更强大和通用。Python 有一个更大的工具集,并且不是和 web 开发紧密地绑定。它也适用于科学建模、仪器测量等。
- 比 Ruby 更可读和著名。Python 语法更整洁,特别是在重要的代码中,并且它的 OOP 对用户和不需要使用 OOP 的项目来说是完全可选的。
- 比 Lua 更自然且关注的更广。 Python 更大的功能集和更广泛的库支持让它的范围比 Lua(一门类似 Tcl 的 内嵌的 “胶水” 语言)更广。
- 没有 Smalltalk,Lisp 和 prolog 那么罕见。 Python 有像这些语言的动态特性,也有开发者和可定制系统终端用户都可以理解的传统语法。
本章总结
本书的 “炒作” 部分到此结束。在这一章里我们已经探索了人们 为他们的编程任务选择 Python 的一些原因。已经看到了它是如何应用的和学习了今天谁正在使用它的一个代表性例子。然而我的目标是讲授 Python,而不是销售它。判断语言的最好方式是在实践中看它的工作效果。所以本书的剩余部分将主要关注本章绕过的语言细节。 接下来的两章将会开始对语言的技术介绍。其中,将探索运行 Python 程序的方式,了解 Python 的字节码执行模型,介绍模块文件的基础以保存代码。目标是给你足够的信息去运行书中剩余部分的代码和练习。直到第 4 章,你都不会真正开始编程,但要确保在进一步学习前理解 Python 启动脚本过程的细节。测试你的知识:测验
在本书的这个版本中,我们将在每一章结束时,就本章中介绍的学习内容做一个快速的开卷测验,以帮助你复习关键的概念。这些测验的答案在问题后面马上出现。 一旦你独自尝试完成了这些问题,我们鼓励你去查看答案,因为他们有时会提供有用的上下文。 除了这些章节末尾的测验,你还可以在本书的每部分的结尾看到实验练习。它们是被设计来帮助你独立编写 Python 代码的。目前这是你的第一个测验。祝你好运,并确保需要的时候,回来参考本章的内容。- 人们选择使用 Python 的 6 个主要原因是什么?
- 列出当前使用 Python 的 4 个著名公司或组织。
- 为什么你可能不想在一个应用中使用 Python?
- 你可以用 Python 来做什么?
- Python 的
<font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">import this</font>
语句的有什么特殊含义? - 为什么在书里和网上的那么多 Python 的例子当中都出现了单词 “spam” ?
- 你最喜欢的颜色是什么?
测试你的知识:答案
你做得怎么样?这里是我想出来的答案,虽然,对一些测试问题可能有多个解决方案。即使你确信你的答案是正确的,但我还是鼓励你看一下我的答案以获取额外的上下文信息。如果有任何你不理解的地方,请参见本章的内容来获取细节。- 软件质量,开发者效率,程序可移植性,支持的库,组件集成,和简单的享受。在这些好处当中,质量和效率主题似乎是人们选择使用 Python 的主要原因。
- Google, 工业光魔, CCP games,Jet Propulsion Labs,Maya,ESRI 还有其他许多。几乎做软件开发的所有组织都在某种方式上使用了 Python,不管是为长期的战略产品开发或短期的战术任务比如测试和系统管理。
- Python 的主要缺点是性能。它不如完全编译的语言如 C 和 C++ 那么快。但另一方面,它对大多数应用都是足够快的。并且通常 Python 代码在任何情况下都是以接近 C 的速度运行,因为它在解释器里面调用了内链接的 C 代码。如果速度是至关重要的,还可以对应用中需要大量计算的地方使用编译好的扩展。
- 你可以使用 Python 做几乎任何你可以用电脑完成的事情,从网站开发和游戏,到机器人和宇宙飞船控制。
- 这是在一个脚注里面提到的:
<font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">import this</font>
触发了 Python 中的一个复活节彩蛋。它显示了语言底层下的一些 Python 设计的哲学。你将在下一章中学习如何运行这个语句。 - “Spam” 是 Monty Python 这个幽默短剧中的一个引用。在那里面,一个自助餐厅里面努力点菜的人们的声音被一个唱着关于 spam(一种午餐肉罐头)的维京人合唱团的声音所淹没。噢,它还是 Python 脚本中一个常用的变量名。。。
- 蓝色。不,是黄色!(参见前一个答案。)