从我第一次接触Python这门编程语言到现在已经有将近10年了。多年前第一次学习Python时,我还有点不情愿。在此之前,我使用另一门语言编程,但在工作中突然被分配到了另一个团队,其中每个人都在使用Python。我的Python之旅就从那里开始了。

第一次接触Python时,我被告知Python很容易,能快速上手。当我向同事询问学习Python的资源时,他们只会给我Python官方文档的链接。刚上手就阅读文档会让人一头雾水,我就这样挣扎了一段时间,之后才慢慢适应。遇到问题时,我通常需要在Stack Overflow上寻找答案。

由于之前使用过另一门编程语言,我没有寻找介绍如何编程或者什么是类和对象这样的入门资源,而是一直在寻找能够介绍Python专有特性的资料,并尝试了解用Python编程与使用其他语言有何区别。

我花了好几年才充分理解了这门语言。当我阅读达恩的这本书时就在想,要是在当初开始学习Python时能有这样一本书该有多好。

举例来说,在众多独特的Python特性中,首先让我感到惊讶的是列表解析式。正如达恩在书中提到的那样,从编写for循环的方式就能看出一个人是否刚从其他语言转到Python。我记得在刚用Python编程时,最初得到的代码审查评论中有一条就是:“为什么不在这里使用列表解析式?”达恩在第6章中清楚地解释了这个概念。他首先介绍了如何用具有Python特色的方式编写循环,之后介绍了迭代器和生成器。

在2.5节中,达恩介绍了几种在Python中格式化字符串的方法。字符串格式化无视了“Python之禅”,即做一件事应该只有一种明确的方式。达恩介绍了几种不同的处理方式,其中包括我最喜欢的Python新增功能f-string。除此之外,他还介绍了每种方法的优缺点。

第8章是本书的另一个亮点,其中介绍了Python编程语言之外的内容,包括如何调试程序和管理依赖关系,并且一窥了Python字节码的究竟。

我很荣幸也很乐意推荐我的朋友达恩·巴德尔编写的这本书。

通过以CPython核心开发人员的身份向Python做贡献,我与许多社区成员建立了联系。在我的Python之旅中,我遇到了不少导师、志同道合者,并结交了许多新朋友。这些经历提醒我,Python不仅仅是一门编程语言,更是一个社区。

掌握Python编程不仅要掌握该语言的理论方面,理解和采用社区使用的惯例和最佳实践同样重要。

达恩的书会帮助你完成这个旅程。我相信读完本书后,你在编写Python程序时会更有信心。

Mariatta Wijaya

Python核心开发人员(mariatta.ca)

目录