书评 | 地表最强Python进阶,我为身边每个朋友推荐这本书

我们知道近年来,大数据、数据科学、机器学习越来越火,越来越多的行业绕不开人工智能的加持。国家也不例外,早在2019年3月,教育部发文批复了 35 所高校作为“人工智能”首批新专业建设资格,包括南京大学、浙江大学、北京航空航天大学、上海交通大学等高校在内。这些学校很多也开设了 Python程序设计、Python编程和数据结构等课程。 

学习人工智能要使用大量工具,最基础的就是开发工具,也就是编程语言。AI 领域最热门的语言当属 Python。想必大家在入门 Python 的时候,必然用过图灵出品的《Python编程:从入门到实践》这本全世界热销超过 250 万的蟒蛇书了——你说巧不巧,这本书也出版了升级版,第 3 版正在预售中。要入门 Python 的朋友们别犹豫,闭着眼睛选这本没错。

很多朋友在学习完蟒蛇书之后,都在寻找一本进阶的 Python 书。那我必须要推荐地表最强 Python 进阶书《流畅的Python》Fluent Python)了。很难用语言来形容这本书的魅力,我给这本书的评价为:Python进阶“圣经”。

该书的第一版由人名邮电出版社旗下品牌图灵教育于 2017 年 5 月出版,一经上市就得到了很多读者的喜爱,至今这本书获得豆瓣高达 9.4 的评分:

a97d203c8a5ff2b9c37adc485a5df0ba.png

中英文版《流畅的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 标准库,看完这本书你对标准库的认识就足够透彻了。

75b3790e6eb143ce46f405a5b98db0c6.png

d5e0b4503f6f35540399e0496a200c62.png

作者将篇幅聚焦在 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 语言特性,示例程序十分经典。

适合人群

  1. 有一定 Python 编程基础的爱好者

  2. 希望提升 Python 编程能力的读者

  3. 梦想 Fluent Python 的读者

  4. 数据科学、机器学习等工程师

cd0028d678f0b54943f751fb00feaf6f.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值