
1.1 Python是进行人工智能编程的主要语言
当前,无论是工业界还是学术界,进行人工智能(AI)编程的主流语言都是Python。Python于1989年由荷兰人吉多·范罗苏姆(Guido van Rossum)发明,从发明之日起就由社区维护并不断壮大。
Python是一门解释型高级语言,其设计简洁而优雅,专注于缩短开发周期,对开发者友好,让开发者尽力避免考虑底层细节,把更多宝贵的精力投入到功能开发本身上来,因此开发效率高。Python官方对Python的评价是:“Python追求的是找到最好的解决方案,相比而言,其他语言追求的是多种解决方案。”由于Python非常容易扩展,在各个领域的开发者不断贡献代码的情况下,逐渐形成了多种多样的库,特别是人工智能开发常常用到的NumPy、SciPy、Matplotlib等库。
开发者除了可以调用Python语言编写的库,还能通过各种方式轻松地调用其他语言编写的模块。一种常见的方式是:底层复杂且对效率要求高的模块用C/C++实现,顶层调用的API用Python语言封装,从而通过简单的语法实现顶层逻辑。因为这样的特性,Python又被称为“胶水语言”。这种特性的好处显而易见,一方面开发者可以更专注于思考问题的逻辑,而不是把时间都用在编程上;另一方面由于大量使用C/C++与它配合,使得采用Python开发的程序运行起来非常快。尤其对于人工智能的研发人员,这种方式非常理想。因此,现在主流的深度学习框架都直接用Python语言或者提供了Python接口。由百度发起的深度学习框架飞桨的开发语言同样采用了Python。
由于历史原因,Python分为两个版本:2.x和3.x,目前飞桨对两个版本均支持。由于Python官方已经宣布于2020年停止对Python2.x的支持,因此本书中用到的例子都是在Python 3.7版本上运行和测试通过的,建议读者也使用3.x版本。
Python是一种很优美的编程语言。希望读者在编写Python程序的时候也能注重把代码写得优雅,具备较好的易读性和可维护性。事实上,Python的作者对于代码的优雅有明确的建议,在python console下输入“import this”,就能看到被称为“The Zen of Python”(Python之禅)的要求。