Python语言非常简洁、方便。与大名鼎鼎的C语言相比,C语言要求程序员改变人的思维去适应计算机,而Python正好相反, 这门语言非常贴近于人的思维习惯 。好的Python程序就像一个极其严谨的人(用英语)在说话,因此非常容易理解。简言之,使用Python语言可以让你集中精力解决问题,而不是费劲地琢磨写程序的规则。这也是为什么Python在人工智能领域这么流行——实现人工智能本来就已经很难了,当然要在写代码上省点力了。
不过,Python语言也有一些缺点,比如用Python写成的程序运行起来往往会慢一些。而人工智能通常需要进行大量计算,所以我们会希望程序运行得更快。好在Python语言还有另一个优点, 它可以很方便地调用以其他语言写就的程序段 。我们可以先把计算量非常大、需要快速运行的部分用性能更强的C语言等写好,然后使用Python写出总体结构,对C语言模块进行调用,这样就能既写得快,又算得快了!因为这个特点,Python被戏称为“ 胶水语言 ”,就好像用胶水把各种零件迅速、方便地粘起来,如图1-2所示。
图1-2 Python被戏称为“胶水语言”
由于Python简单好用,在人工智能领域,已经有非常多的人为Python这瓶“胶水”写了很多好用的“零件”(我们通常将其称为 Python库 ),并遵循开源精神把它们分享出来,让更多的人一起使用。这也让Python变得更加好用了。
趣闻 Python之禅
另一位对Python语言的开发做出很大贡献的程序员蒂姆·彼得斯(Tim Peters)写了一首小诗来描述Python语言写成的程序应该是什么样的。
优美而不丑陋,
明了而不隐晦,
简单而不复杂,
复杂而不凌乱,
扁平而不嵌套,
稀疏而不稠密,
可读性很重要,
即使实用比纯粹更优,
特例亦不可违背原则。
错误绝不能悄悄忽略,
除非它明确需要如此。
面对不确定性,
拒绝妄加猜测。
任何问题应有一种,
且最好只有一种,
显而易见的解决方法。
除非你是荷兰人,否则这方法一开始并非如此直观。
做总比不做强,
但是冒失去做还不如不做。
很难解释的,必然是坏方法。
很好解释的,可能是好方法。
命名空间是个绝妙的主意——我们应好好利用它!
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity,
refuse the temptation to guess.
There should be one——and preferably only one——obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea —— let’s do more of those!