《流畅的Python》第二版上市了,值得入手么?

《Fluent Python》第一版在 2015 年出版,简体中文版《流畅的Python》在 2017 年出版。从那时起,它就成为了所有 Python 程序员的必读之书。如果一份面向中高级 Python 开发者的书单里不包含这本书,那这份书单肯定不合格!

《Fluent Python》第二版在 2022 年出版,最近,简体中文版《流畅的Python》也隆重上市了!

在收到出版社的赠书后,我发了一条朋友圈,收到了很多点赞,以及咨询最多的两个问题:新书相比于旧版,有什么区别?我是新手,这本书适合我么?

本文将给大家解答这两个问题,另外在文末有赠书福利(送 10 本书),请不要错过哦~

这本书适合哪些读者?

如果你是零基础的 Python 新手,那么这本书不适合你,因为这本书“深入剖析 Python 语言核心特性及底层逻辑”,你可能会感觉它深奥超纲。

如果你是零基础的初学者,那么我推荐你阅读《Python编程:从入门到实践》、《看漫画学Python》这样的入门书籍。但是,在划走之前,请你一定要收藏本文,因为 Python 入门简单,相信你很快就会需要一本指导进阶的书籍了。

Python编程:从入门到实践

除了以上的读者群体外,《流畅的Python》适合于所有 Python 开发者/爱好者,特别地,如果你怀有以下的想法,那么这本书绝对是不二之选:

  • 想要更加熟练地掌握 Python
  • 想要了解实用的编程技巧
  • 想写出地道、优雅、高效的 Python 代码
  • 想要掌握 Python 最新的语言特性

我在两年前写过一篇《如果只推荐一本 Python 书,我要 Pick 它!》,强烈推荐了第一版书籍,你可以从该文看到第一版主要内容的思维导图,以及我的推荐介绍。

如果你没听说过《流畅的Python》,或者没读过第一版的书,我建议你先读一下那篇文章。

在本文中,我主要面向已经了解过这本书的读者,回答大家最为关切的两个疑问:已经读过第一版了,是否还有必要读第二版呢?已经拥有了第一版书籍(不管实体书还是电子书),是否值得再买入第二版呢?

这本书新增了什么内容?

《流畅的Python》作者 Luciano Ramalho 是 Python 软件基金会成员,他深度参与了各类社区活动,熟知大量语言特性的设计过程和差异,他的书具有内容全面而新潮的特点。在第一版写作完成时,Python 3.5 版本还没发布,但是书中已包含了大量 3.5 版本的内容。

第一版英文书籍发布于 2015 年,那时社区中仍有较多 Python 2 用户因循守旧,因此作者的附加意图之一就是展现 Python 3 的魅力,引导老用户们进行迁移。

在随后 7、8 年时间里,Python 社区中发生了很多重大事件:

  • 2015 年,PEP-484 被引入到 Python 3.5 版本,类型提示开始迅猛发展
  • 2015 年以来,asyncio 引入了很多新特性,异步编程越来越好用
  • 2015 年 TensorFlow 发布,2016 年 PyTorch 发布,2017 年 AlphaGo 击败人类世界围棋冠军。2022 年 ChatGPT 发布,各种 AI 模型和应用变得数不胜数
  • 2018 年,Python 之父 Guido van Rossum 卸任“独裁者”,社区开始“指导委员会”治理模式
  • 2020 年,Python 2 彻底停止维护
  • 2023 年,PEP-684 被采纳,PEP-703 也有希望被采纳,GIL 将迎来重大变革……

第二版书籍从 2020 年初开始写作,他这次已不用特意考虑 Python 2 用户了,重点是让读者熟悉 Python 新的功能特性。

英文第二版的上市时间比 Python 3.10.0 的发布时间早了好几个月,但是,书中的示例已基于 3.10 测试过,不仅有大量 3.10 版本的内容,还涉及一些 3.11 版本的变化。

为了凸显出两个版本的差异,这本书每一章的第一节都会介绍“本章新增内容”。得益于作者梳理出的线索,我整理出了一份新增特性的清单(仅为简化版,详细内容请以书本为准):

  • 3.5 版本:原生协程、矩阵乘法运算
  • 3.6 版本:f-string 语法、collections.abc.Collection 抽象基类、异步生成器
  • 3.7 版本:dict 插入有序、@dataclass 装饰器、contextlib 模块新增的几个函数、http.server 的多线程服务器
  • 3.8 版本:仅限位置参数、异步的 REPL、@functools.cached_property、海象运算符(:=)
  • 3.9 版本:||= 运算符、缓存装饰器 functools.cache、泛化类型提示
  • 3.10 版本:模式匹配语法(match-case)、zip() 函数的新功能、带括号的上下文管理器

以上罗列的内容都是各个版本的新特性,表明了这本书紧跟着语言的发展趋势。

除此之外,书中还增加了大量的内容或修改,比如:新增了很多图表、说明框、示例代码和延伸阅读材料;介绍 dict 与 OrderDict 之间的差异、介绍字典的视图对象、super() 函数是如何支持协作多重继承的、如何避免使用继承、使用 HTTPX 库、新增 FastAPI Web 服务示例、使用元类时的注意事项……

容器序列与扁平序列的图示

以上提到的新内容和修改点,主要都分散在第一版原有的内容里。另外,对于一些重点话题,作者在第二版里增加了大量的篇幅,比如新增两章内容重点介绍类型提示(《第8章 函数中的类型提示》、《第15章 类型提示进阶》)、增加大量并发编程内容(新增一章《第19章 Python并发模型》、新增 asyncio 异步编程内容)……

异步程序执行示意图

在翻阅新书的时候,我还注意到了几个值得一提的章节(都是第一版没有的内容):

  • 第 13 章对四种类型的划分讨论(鸭子类型、大鹅类型、静态鸭子类型、静态类型),不再是常规的类型分类角度(即动态类型、静态类型、强类型、弱类型),而是将类型提示以及抽象基类整合进来,作者画的图例让我感觉耳目一新
  • 第 2.6 节不仅介绍了最新的模式匹配(match-case)语法,还用它重构了一个解释器 lis.py 代码。然后到了第 18.3 节,作者又进一步分析 lis.py 的整体机制,试图让我们感受到“地道的 Python 代码体现的编程美感”,通过介绍 Scheme 句法,让 Python 开发者感受“简单的语言设计哲学如何让 Scheme 成为大师级作品”
  • 第 21.9.1 节使用 FastAPI 框架实现 Web 服务,舍弃了第一版中用到的 aiohttp,这为近几年已十分流行的 FastAPI 又助力推了一把

四种类型及对应的语言

《流畅的 Python》的内容十分庞博,信息密度极高,作者是个绝对的细节控和整理大师。在主体的文本外,那些密集的提示框、注释、延伸阅读和杂谈,在知识广度和深度上让人叹为观止。

第二版除了新增大量内容外,还调整了很多原有章节的次序,图灵教育整理了全书的思维导图如下:

流畅的Python思维导图-上册

流畅的Python思维导图-下册

总体而言,第二版的变化之大超出了我的预期,值得我们暂时忘记第一版,然后把它当做一本全新的书仔细研读。购入实体书也很有必要,因为很多章节彼此关联,实体书比较便于查找目标章节,也便于阅读完整的上下文信息。

其它的变化

在解答完大家最为关切的问题后,我还想补充几点。

首先是关于印刷,第二版分成了上下两册,用纸也更为讲究,比第一版轻薄许多,对比沉甸甸的第一版,我个人感觉新版的阅读体验提升了不少。

其次是关于翻译,第二版修改了旧版翻译不到位或不准确的很多内容。比如,第一版将“Goose typing”翻译成“白鹅类型”,第二版修改成了“大鹅类型”;第一版将“Boolean Value of a Custom Type”错误译成了“自定义的布尔值”,第二版修正为“自定义类型的布尔值”;第一版将“When a List Is Not the Answer”译成“当列表不是首选时”,第二版修改成“当列表不适用时”……

“goose”是“鹅”,为了跟“鸭子类型”对照,最好翻译成两个字,但鹅不一定是白色,却普遍体型大于鸭子,因此我觉得改成“大鹅类型”是贴切的。另外两个例子出自前两章的小标题,比较显眼易见,书中还有不少翻译调整之处,就不一一列举了。

最后很值得关注的是,作者在创作第二版时,为新书搭建了一个网站,里面已收录了多篇没有写到书中的文章,可以作为辅助材料。

Fluent Python 网站的文章

网站文章目前包括:经典的协程(高能预警:这篇特别长,是对书中第 17.13 章的强力补充)、使用 bisect 处理有序序列、 集合与字典的内部实现、对象的弱引用,等等。

福利环节

本次赠书共 10 本,有效期至 5 月 2 日 12 点。

抽奖送书(5本):给公众号【Python猫】发送数字“0428”,获取抽奖二维码后参与。

评论送书(5本):有两种评论方式,任选其一即可。方式1,从公众号里加猫哥为好友后,在朋友圈评论“你想获得赠书的理由”;方式2,将本文转发到你的社交圈之一(朋友圈或技术群或头条号或微博或其它交流平台),写上你对本书的评论/推荐语,然后发截图给我。

抽奖送书,各凭运气;评论送书,我会择优录用,奖品不叠加。若有弃奖,则奖品在微信读者群内抽奖送出。最后,感谢人民邮电出版社对本次活动的赞助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12727.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google Bard 对战 ChatGPT4

话题之一:如何降低血压 我家老爷子血压有点高,所以我挑了这么个话题。 如果用中文来问 Bard, 有点欺负它,那么索性用英文 1. Bard 在速度上占有绝对优势 2. GPT4 在最后一条监测就医建议上,完胜。 很多老人得过且过,不…

ChatGPT是如何运行起来的?(上)

在这篇文章中,我们将解释ChatGPT是如何工作的,以及为什么它能够产生连贯和多样化的对话。 微信搜索关注《Java学研大本营》 1 每次增加一个词 ChatGPT能够自动生成一些看起来像人类写的文字,这很了不起并且出乎意料。但ChatGPT是如何做到的呢…

ChatGPT 算是“颠覆式创新”吗?

与其说是单纯的技术突破或更新换代,不如说是技术与场景的完美结合造就了ChatGPT现象级的成功。 2018年,梁宁老师在得到分享了她在产品方面的思考,在《产品思维30讲》里提到了“颠覆式创新”概念。 她说颠覆式创新最重要的标准就是&#xff0c…

ChatGPT插件使用攻略,解锁互联网新体验

ChatGPT插件系统的功能如此强大,以及如何创建自己的插件。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 最近,OpenAI发布了ChatGPT的新功能:插件系统。ChatGPT现在可以进行功能扩展并执行新的任务&…

由文心一言发布会引发的思考,聊聊我未来的学习规划

文章目录 前言一. 文心一言的试用1.1 文心一言发布会1.2 文心一言图片生成功能试用1.3 文心一言文本功能试用1.4 文心一言代码功能试用1.5 试用总结 二. 我未来的学习规划2.1 向csdn的大佬请教2.2 关于AIGC的思考2.3 我未来的学习方向和计划 总结 前言 大家好,我是…

「法外狂徒」ChatGPT!30年老律师用它旁征博引,结果被骗得禁止执业

衡宇 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT,把从业30年的老律师给坑惨了! 老哥撰写案件文案的时候,尝鲜让ChatGPT帮忙准备材料。然而提交后,不管是法官、对方律师还是老哥自己,都溯源不到引用的判决文书。 结果就…

快看!ChatGPT的4个不为人知却非常实用的小功能

文 / 高扬(微信公众号:量子论) 今天重点介绍四个ChatGPT很实用的小功能。 一、停止生成 如果在ChatGPT输出内容的过程中,我们发现结果不是自己想要的,可以直接点击“Stop generating”按钮,这样它就会立即停…

借助 ChatGPT、Blender 和 3D 打印将创意变成实物

这次我想研究一下将某些想法实现到物理对象中是多么容易。 就像我对计算机说: “请给我做一个保龄球奖杯!” 过了一段时间,我的手上就握着奖杯了。 几周前,周六晚上,我躲在电脑前,躲避在家里聚会的青少年,因此在 ChatGPT 的帮助下,我开始编写一个简短的 Python + B…

chatgpt赋能python:Python编写动画:如何用Python打造流畅的动画效果

Python编写动画:如何用Python打造流畅的动画效果 Python作为一门功能强大的编程语言,在数据分析和科学计算领域得到广泛应用。但是,Python也可以用来编写动画和游戏等娱乐应用。本文将介绍如何使用Python编写动画,并提供一些技巧…

【aigc辅助绘画流程】blender+stableDiffusion+chatgpt辅助建立3D插画背景

首先还是先上效果图吧。 这是一张用stable diffusion生成的照片,我们最好去选用这种相对正透视的照片(特别是像我这种透视功底本来就不咋地的半桶水美术)。 通过该照片直接映射到场景立方体中(注意这里删掉了正对摄像机的面&…

在 Blender 代码创建中使用 GPT Chat AI,如何从零知识开始写代码

在这个实验中,我旨在探索 GPT 聊天 AI 在为 Blender 程序创建代码方面的潜力。目标是利用代码在 Blender 中创建几何体,并查看是否可以通过使用人工智能简化该过程。 我必须承认,我离熟练的程序员还很远,更接近新手。然而,这并没有阻止我在这个实验中尝试使用 GPT 聊天 AI…

Stack Overflow 正遭到 ChatGPT 的“暴击”!

编译 | 苏宓 出品 | CSDN(ID:CSDNnews) 这几个月,ChatGPT、GPT-4 等 AIGC 产品与大模型风头正盛,然而与之形成鲜明对比的是,老牌程序员问答社区如 Stack Overflow 的日子就没那么好过了。 Stack Overflow 流…

多元化增长引擎业务占比超四成,联想开启混动模式?

一句话概括联想集团的业绩:预料之内的整体下滑,超出预期的第二曲线。 上周五(2月17日),联想集团发布了2022到2023财年第三季度业绩。根据财报,联想集团实现营收152.67亿美元,同比下降24%&#…

文心一言背后,百度还是那个百度

对百度而言,文心一言不是一个结果,而仅仅是这家技术企业在过去多年投入的一个缩影和侧写。 作者|皮爷 出品|产业家 “第一枪”打响。 伴随着一身“工程师范”的李彦宏出现在台上,在市场备受期待的文心一言正式亮相。在发布会现场&#xff…

面向chatgpt编程——编写简单的数据录入工具

标题面向chatgpt编程——编写简单的数据录入工具 最近业务上有个需求,需要采集某些公司披露的年度报告中的信息,因为 pdf 解析工具的效果不太理想,因此需要人工查找录入到oracle数据库。为了提高效率,我借助chatgpt搭建了一个小型…

ChatDOC,文档版ChatGPT,可以上传文档并解析,与你的文档对话

引言 ChatDOC是一个基于ChatGPT的文件读取助手,可以 快速从文档中提取,定位和汇总信息 特点 阅读速度更快,学得更好。 – 上传研究论文、书籍、手册等!询问有关您的文件的任何信息,并在几秒钟内获得易于理解的答案一…

【RPA进阶】 高级数据操作

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:UiPath 🦀专栏简介:UiPath在传统的RPA(Robotic…

ChatGPT会取代RPA?ta自己可不是这么说的!

先说一个AI热知识:ChatGPT 的推出在科技界引发了一场狂潮。 聊天机器人ChatGPT以及其背后的AI大模型GPT,在2023年引爆全球。GPT 全称为 Generative Pre-trained Transformer,是一种使用人工神经网络的深度学习技术,能够使机器像人…

Chatgpt超级写手+RPA采集工具,解决内容创作问题的自动化神器

你是否曾经为了寻找优质内容而感到束手无策?是否曾经因为时间成本高而感到头疼?是否曾经因为原创难度大而心生畏惧? 作为一名内容创作者,你一定会深有体会。如何在这个信息爆炸的时代中找到最优质的内容,是每个内容创作…

10几个国内AI大模型,让你的工作学习效率翻倍!

文章目录 前言1.道和顺ChatIC2.星期五3.文心一言4.讯飞星火认知大模型5.通义千问6.商汤-日日新7.Moss8.ChatGLM9. 360智脑写在最后 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入…