赠书《流畅的Python》

3,575 阅读3分钟

基础语法都知道,代码也基本能读懂,但是动手能力差,写代码没有任何头绪,开源项目中的代码稍微复杂就难以理解,这是很多初学者面临的困惑。国内 Python 教程良莠不齐,大多数仅停留在基础语法层面,这导致很多初学者甚至一些富有经验的开发者写出来的代码带有浓重的“口音”(从其它语言转移过来的编程思维),比如:

a = 1
b = 2
# 交换两个变量
tmp = a
a = b
b = tmp

这代码虽然能正确执行,但在 Python 中这是很不专业的写法,真正的 Pythonic 写法是:

a = 1
b = 2
a, b = b, a

又比如遍历带索引下标的集合对象时,非Python程序员首先想到的写法可能是先定义一个索引下标变量 :

colors = ['red', 'green', 'blue', 'yellow']
index = 0
for x in colors:
 print(index, colors[index])
 index += 1

如果你是一个有经验的Python程序员,那么你一定会想到 enumerate 函数能实现这样的功能。

colors = ['red', 'green', 'blue', 'yellow']
for index, color in enumerate(colors):
 print(index, color)

诸如此类优雅的写法,还有很多高级特性,装饰器、生成器、迭代器、描述符等概念掺杂在一起让人望而生畏。棘手的字符编码问题,字节字符串与 Unicode 字符串在 Python2 中互相转换能把人逼疯。函数作为第一类对象在实际应用中有着举足轻重的作用,理解函数,也就是理解闭包、装饰器、作用域、命名空间、内省等概念,几乎无人问津的 Python 垃圾回收机制、以及协程并发等与性能相关的主题,你可能这辈子都用不着的元类(如果你要着手写一个框架,那么你不可避免地需要去理解元类的概念以及应用。)面向对象的精髓,如何高效地使用Python数据结构,

以上知识点都是通往 Python 高手之路所必须掌握的。

然而,似乎从来没有一本书能够全面的从这些方面讲解,值得可贺的是,两年前一本叫做《Fluent Python》的书填补了 Python 社区没有像样的关于实战技巧、进阶提高书籍的空白。这本书经过两年时间的验证,口碑毋庸置疑,国内各种技术社区对此书都有不错的评论,英文版我有幸拜读过,它给我的工作提供不少帮助,是一本进阶程序员不可多得的好书。

一个利好消息,《Fluent Python》今年正式由图灵教育引进,中译本《流畅的Python》目前已经顺利出版。

赠书活动由图灵教育赞助,首先感谢图灵的支持,一共有5本书。活动的规则很简单,在公众号 "Python之禅"的 初级Python程序员如何进阶? 这篇文章下面留言就有机会获得此书。截止时间是5月21日24点

公众号:Python之禅 (id:VTtalk),分享 Python 等技术干货

Python之禅