我们知道近年来,大数据、数据科学、机器学习越来越火,越来越多的行业绕不开人工智能的加持。国家也不例外,早在2019年3月,教育部发文批复了 35 所高校作为“人工智能”首批新专业建设资格,包括南京大学、浙江大学、北京航空航天大学、上海交通大学等高校在内。这些学校很多也开设了 Python程序设计、Python编程和数据结构等课程。
学习人工智能要使用大量工具,最基础的就是开发工具,也就是编程语言。AI 领域最热门的语言当属 Python。想必大家在入门 Python 的时候,必然用过图灵出品的《Python编程:从入门到实践》这本全世界热销超过 250 万的蟒蛇书了——你说巧不巧,这本书也出版了升级版,第 3 版正在预售中。要入门 Python 的朋友们别犹豫,闭着眼睛选这本没错。
很多朋友在学习完蟒蛇书之后,都在寻找一本进阶的 Python 书。那我必须要推荐地表最强 Python 进阶书《流畅的Python》(Fluent Python)了。很难用语言来形容这本书的魅力,我给这本书的评价为:Python进阶“圣经”。
该书的第一版由人名邮电出版社旗下品牌图灵教育于 2017 年 5 月出版,一经上市就得到了很多读者的喜爱,至今这本书获得豆瓣高达 9.4 的评分:
中英文版《流畅的Python》豆瓣评分一览
好消息是,最近,地表最强 Python 进阶书《流畅的Python(第2版)》上市了,基于 Python 3.10 进行了全面升级:
必须要强调的是,《流畅的Python》是一本进阶书,进阶书,进阶书(重要的事情说三遍)。毕竟这本书的英文名是 Fluent Python ,这种流畅指本质上就是精通,是一种非常高的 Python 编程水平。学好这本书为何能让你真正精通 Python,我们来看看。
一、作者出名 & 译者用心
该书作者卢西亚诺·拉马略(Luciano Ramalho)是 Thoughtworks 首席咨询师、Python软件基金会成员(PSF)、巴西知名 Python 语言学习社区 Python Brasil 联合创始人,而且拥有 25 年 Python 编程经验。
25 年的一线 Python 开发、教学、工业实践经验确保了作者能够全方面地了解 Python 特性。作者通过典型案例将 Python 的语言特性展示得淋漓尽致,从不同角度帮助读者深入理解 Python 的底层逻辑。
译者安道老师奋战在翻译一线多年,自己也具有丰富的实践经验,他的译文广受读者称赞。安道老师跟图灵合作翻译出版的作品中,除了《流畅的Python》,还有《Flask Web开发:基于Python的Web应用开发实战》《Python网络编程攻略》等经典图书。
二、内容强大
首先,《流畅的Python(第2版)》是一本具有 700 多页的 Python 进阶宝典,基于 Python3.10 进行了升级,作者用心地在每一章节的开始部分都安插了与第1版比较的新增内容说明,帮助读者快速了解新增部分,大大提升了读者阅读体验。
其次,这本书内容十分丰富,整书结构共分为 5 个部分 24 章。全书很少涉及 Python 的第三方模块,所有特性围绕 Python 标准库,看完这本书你对标准库的认识就足够透彻了。
作者将篇幅聚焦在 Python 的数据结构、函数即对象、类和协议、控制流程与元编程等底层的一些属性和操作上。这几部分正是 Python 这门语言最为核心的地方,研究透这些底层的特性,Fluent Python 的能力你也唾手可得。下面我们来看看相较第 1 版,书中讲解的一些新东西,看两个简单的例子。
新特性赏析一:yield from
在下册第 17 章中,作者使用更简单的实验演示了yield from 构造的生成器的行为——巧妙地设计了仅使用 yield from 就能很好地从子生成器序列中产生一个序列的方案,告别了以前使用 for 循环的方式。
def sub_gen():
yield 1.1
yield 1.2
def gen():
yield 1
# yield from
yield from sub_gen()
yield 2
for x in gen():
print(x)
可以看出 yield from 建立了子生成器 sub_gen() 与客户代码 for 循环之间的联系。使用 yield from 方法可以在很大程度上简化代码,使得代码更容易阅读。不仅如此,在章节后续的行文中,作者分步骤基于 yield from 方法演示了一个遍历树状数据结构的案例,帮助读者进一步理解 yield from 表达式,以后需求组提出遍历目录结构的时候小伙伴们就可以炫技一波了。
新特性赏析二:Python 并发模型
“同时高效处理多件事”一直是程序员不懈奋斗的目标——并发对于我们的应用系统来说非常重要,编程语言对并发的支持就显得格外关键。第2版作者新增了第19章来揭示 Python 中的并发知识和如何实现高效性能的并行和并发。
在这一章里,作者使用线程、进程和协程来实现了一个旋转指针的案例,在案例中比较了threading、multiprocessing 和 asyncio 这3个原生并发模型实现上的不同之处,其中进程实现的部分代码如下:
def spin():
pass
def supervisor():
done = Event()
spinner = Process(target=spin,args=('thinking!',done))
print(f'spinner object:{spinner}')
spinner.start()
result = slow()
done.set()
spinner.join()
return result
if __name__== "__main__" :
main()
作者使用短短的几行代码展示了 multiprocessing 的 API 与 threading API 之间的对应关系,基于 multiprocessing 可以将使用线程的简单程序转换为进程实现,并揭示了 multiprocessing 底层C代码实现进程之间的通信原理。在本章的后续行文中,作者分析了 CPython 的 GIL 机制和其影响,对 GIL 感兴趣的小伙伴可以尽情地研究起来了。
刚刚分享了本书第 2 版新增了的众多特性中的两个重要的特性,当然了本书中其他新增内容也是非常重要的,大家可以自己去探索一下。
下面总结一下本书的特色。
三、本书特色
作为 Python 进阶“圣经”,该书有以下特色值得分享。
● Python 进阶第一书,好评如潮
豆瓣高分评价,Amazon 高星评价,各大网站 Python 进阶首选图书。
● 吃透 Python 语言核心特性
帮助 Python 开发人员深度挖掘这门语言及相关程序库的优秀特性。
● 深入理解 Python 底层逻辑
五大部分,24章深入 Python 底层逻辑,探讨了 Python 语言的高级用法,并辅以通俗的案例帮助读者全面了解其中原理和机制。
● PSF 研究员 25 年心血之作
从语言设计层面剖析编程细节,告诉你 Python 中不亲自动手实践就无法理解的语言陷阱成因和解决之道,教你写出风格地道的 Python 代码。
● 基于 Python 3.10 全面升级
新版语言升级至 Python 3.10,涵盖最新的 Python 语言特性,示例程序十分经典。
适合人群
有一定 Python 编程基础的爱好者
希望提升 Python 编程能力的读者
梦想 Fluent Python 的读者
数据科学、机器学习等工程师