在本文中,我们通过一系列书评重点介绍学习 Python 的最佳书籍。每篇评论都会让您对这本书、所涵盖的主题以及用于说明这些主题的上下文有所了解。不同的书会引起不同的人的共鸣,这取决于书籍的风格和呈现方式、读者的背景以及其他因素。
开始使用 Python 就像学习任何新技能一样:找到可以连接的资源来指导您的学习非常重要。幸运的是,不乏优秀的书籍可以帮助您学习编程的基本概念和 Python 编程的细节。由于资源丰富,很难确定哪本书最适合您的情况。
阅读这些评论后,如果您仍然不确定选择哪本书,出版商通常会提供示例章节或部分,以向您展示该书提供的内容。阅读这本书的样本应该能让你对作者的节奏、风格和期望最有代表性的了解。
无论哪本书最引人注目,请考虑一下我们的书评家史蒂文·C·豪厄尔(Steven C. Howell)的轶事:
学习 Python 的最佳书籍
如果您是 Python 新手,您可能会遇到以下两种情况之一:
您是编程新手,想从学习 Python 开始。
您拥有一定的其他语言编程经验,现在想要学习 Python。
本节重点讨论这两个场景中的第一个,并对我们认为是编程和 Python 新手读者的最佳 Python 编程书籍进行了评论。因此,这些书不需要任何编程经验。他们从绝对基础知识开始,教授一般编程概念以及它们如何应用于 Python。
笔记: 如果您正在寻找适合经验丰富的程序员的最佳 Python 书籍 ,请考虑以下精选的书籍,其中包含完整的评论介绍 和先进的 部分:
或者,您甚至可能更愿意直接前往官方Python教程 ,一个写得很好的、详尽的资源。
Python 速成课程
埃里克·马蒂斯(无淀粉出版社,2016)
它确实做到了罐头上所说的那样,而且做得非常好。本书首先介绍了基本的 Python 元素和数据结构,包括变量、字符串、数字、列表和元组,概述了如何使用它们。
下一个,if
涵盖了语句和逻辑测试,然后深入介绍了字典。
之后,本书涵盖了用户输入,while 循环 、函数、类和文件处理,以及代码测试和调试。
这只是本书的前半部分!在下半年,您将从事三个主要项目,创建一些聪明、有趣的应用程序。
第一个项目是一款外星人入侵游戏,本质上是太空入侵者,使用pygame
包裹。您设计一艘船(使用类别),然后编写如何驾驶它并使其发射子弹的程序。然后,你设计几个类别的外星人,让外星人舰队移动,并使其能够击落它们。最后,您添加记分板和高分列表来完成游戏。
之后,下一个项目将涵盖数据可视化matplotlib
、随机游走、掷骰子和一些统计分析,使用pygal
包裹。您将学习如何下载各种格式的数据、将其导入 Python 并可视化结果,以及如何与 Web API 交互、从 GitHub 和 HackerNews 检索和可视化数据。
第三个项目将引导您使用 Django 创建完整的 Web 应用程序,并设置学习日志来跟踪用户一直在学习的内容。它涵盖了如何安装 Django、设置项目、设计模型、创建管理界面、设置用户帐户、管理每个用户的访问控制、使用 Bootstrap 设计整个应用程序,最后将其部署到 Heroku 。
这本书写得很好,组织得很好。它提供了大量有用的练习以及构成本书后半部分的三个具有挑战性和娱乐性的项目。(大卫·施莱辛格审阅。)
《Head-First Python》,第二版
保罗·巴里(奥莱利,2016)
我真的很喜欢头朝前 系列书籍,尽管不可否认,它们的整体内容比本节中的许多其他推荐书要轻。代价是这种方法使本书更加用户友好。
如果你是那种喜欢一次学习一小部分、相当独立的东西的人,并且你想要大量具体的例子和所涉及概念的说明,那么头朝前 系列适合您。出版商的网站对他们的方法有以下说明:
“根据认知科学和学习理论的最新研究,深入了解Python 使用视觉丰富的格式来吸引您的注意力,而不是让您入睡的大量文本方法。为什么要把时间浪费在新概念上呢?这种多感官学习体验是为您的大脑真正运作的方式而设计的。”(来源)
充满了插图、例子、旁白和其他花絮,深入了解Python 始终引人入胜且易于阅读。本书通过深入研究列表并解释如何使用和操作它们来开始 Python 之旅。然后它进入模块、错误和文件处理。每个主题都围绕一个统一的项目进行组织:通过通用网关接口 (CGI) 使用 Python 为学校体育教练构建一个动态网站。
之后,本书会花时间教您如何使用 Android 应用程序与您创建的网站进行交互。您将学习处理用户输入、整理数据,并研究在 Web 上部署和扩展 Python 应用程序所涉及的内容。
虽然这本书不像其他一些书那么全面,但它以一种可以说更容易理解、更轻松、更有效的方式涵盖了一系列 Python 任务。如果您一开始发现编写程序的主题有些令人生畏,则尤其如此。
本书旨在指导您应对任何挑战。虽然内容更加集中,但这本书有大量的材料可以让你忙碌和学习。你不会感到无聊。如果您发现大多数编程书籍都过于枯燥,那么这可能是一本适合您入门 Python 的优秀书籍。(由 David Schlesinger 和 Steven C. Howell 审阅。)
用 Python 发明你自己的电脑游戏,第四版
阿尔·斯威加特(无淀粉,2017)
如果您喜欢游戏,或者您甚至有自己的游戏创意,那么这将是学习 Python 的完美书籍。在本书中,您将学习编程和 Python 的基础知识,并通过专注于构建经典游戏的应用练习。
首先介绍 Python shell 和 REPL 循环,然后是基本的“Hello, World!”脚本后,您将直接开始制作一个基本的猜数游戏,涵盖随机数、流程控制、类型转换和布尔值 数据。之后,编写了一个讲笑话的小脚本来说明打印语句、转义字符和基本字符串操作的使用。
下一个项目是一款基于文本的洞穴探索游戏 Dragon's Realm,它向您介绍流程图和函数,指导您如何定义自己的参数和参数,并解释布尔运算符、全局和局部范围以及sleep()
功能。
在简要介绍了如何调试 Python 代码之后,接下来您将使用 ASCII 图稿实现 Hangman 游戏,同时了解列表、in
运算符、方法、elif
声明,random
模块和一些字符串方法。
然后,您可以使用单词列表和难度级别等新功能来扩展 Hangman 游戏,同时学习字典、键值对以及多个变量的赋值。
您的下一个项目是 Tic-Tac-Toe 游戏,它介绍了一些高级人工智能概念,向您展示如何在条件条件中短路求值,并解释了None
值以及访问列表的一些不同方式。
本书其余部分的阅读过程也以类似的方式进行。
您将在构建 Mastermind 风格的猜数游戏时学习嵌套循环、声纳狩猎游戏的笛卡尔坐标、编写凯撒密码的密码学以及在实现计算机可以玩的黑白棋(也称为黑白棋)时学习人工智能反对自己。
在完成所有这些之后,我们将深入探讨如何通过 PyGame 在游戏中使用图形:您将了解如何为图形设置动画、管理碰撞检测以及使用声音、图像和精灵。为了将所有这些概念结合在一起,本书将指导您制作图形躲避障碍游戏。
这本书做得很好,每个项目都是一个独立的单元,这使它很有吸引力且易于理解。如果您是喜欢边做边学的人,那么您一定会喜欢这本书。
本书仅根据需要介绍概念这一事实可能是一个缺点。
虽然它更多地是作为指南而不是参考,但在熟悉的游戏背景下教授的广泛内容使得这本书成为学习 Python 的最佳书籍之一。(大卫·施莱辛格审阅。)
思考 Python:如何像计算机科学家一样思考,第二版
艾伦·B·唐尼(奥莱利,2015)
如果通过创建视频游戏来学习 Python 对你来说太无聊了,可以考虑一下 Allen Downey 的书想想Python ,这需要更严肃的方法。
正如标题所示,本书的目标是教你如何编码思考 关于编码,它做得很好。与其他书籍相比,它更加干燥并且以更加线性的方式组织。本书以非常简单、清晰和全面的方式重点介绍了您需要了解的基本 Python 编程的所有内容。
与其他类似的书籍相比,它并没有深入到一些更高级的领域,而是涵盖了更广泛的材料,包括其他书籍没有涉及的主题。此类主题的示例包括运算符重载、多态性、算法分析以及可变性与不变性。
以前的版本练习量有点少,但最新版本很大程度上纠正了这个缺点。
这本书包含四个相当深入的项目,以案例研究的形式呈现,但总的来说,与许多其他书籍相比,它的定向应用练习较少。
如果您喜欢逐步介绍事实,并且想进一步了解专业程序员如何看待问题,那么这本书是一个不错的选择。(由 David Schlesinger 和 Steven C. Howell 审阅。)
物理学中的有效计算:Python 研究现场指南
安东尼·斯科帕茨,凯瑟琳·D·赫夫(奥莱利,2015)
这是我第一次学习 Python 时希望拥有的书。
尽管它的名字如此,这本书对于那些没有物理、研究或计算问题经验的人来说是一个很好的选择。
这确实是一个现场指导 用于使用Python。除了实际教授 Python 之外,它还涵盖了相关主题,例如命令行和版本控制,以及软件的测试和部署。
本书除了是一本很好的学习资源之外,还可以作为一本优秀的 Python 参考书,因为主题组织得很好,散布着大量的示例和练习。
本书分为四个恰当命名的部分:入门、完成、正确使用和走出去。
入门部分包含您开始运行所需的一切。
它首先介绍 bash 命令行基础知识的一章。 (是的,您甚至可以安装用于 Windows 的 bash .)
然后,本书继续解释 Python 的基础知识,涉及所有预期的主题:运算符、字符串、变量、容器、逻辑和流程控制。
此外,有一整章专门介绍所有不同类型的函数,另一章专门介绍类和面向对象编程。
在此基础上,“完成”部分进入了更以数据为中心的 Python 领域。
请注意,本节约占本书的三分之一,最适用于科学家、工程师和数据科学家。
如果那是你,那就享受吧。
如果没有,请随意跳过,选择任何相关的部分。但请务必阅读本节的最后一章,因为它将教您如何使用 pip、conda、虚拟机和 Docker 容器来部署软件。
对于那些对数据处理感兴趣的人来说,本节首先简要介绍了数据分析和可视化的基本库概述。 然后,您将有一个单独的章节专门介绍正则表达式、NumPy、数据存储(包括执行核外操作)、专用数据结构(哈希表、数据帧、D 树和 k-d 树)等主题,和并行计算。
“正确使用”部分教您如何避免和克服与使用 Python 相关的许多常见陷阱。
它首先通过教您如何使用构建软件管道来扩展有关部署软件的讨论make
。
然后,您将学习如何使用 Git 和 GitHub 来跟踪、存储和组织一段时间内的代码编辑,这一过程称为版本控制。
本节最后教您如何调试和测试代码,这是两项非常有价值的技能。
最后一部分“将其发布出去”重点是与代码的使用者(包括您自己)进行有效的沟通。
它涵盖文档、标记语言(主要是 LaTeX)、代码协作和软件许可等主题。
本节和本书最后列出了一长串按主题组织的科学 Python 项目。
这本书之所以脱颖而出,是因为除了教授 Python 的所有基础知识之外,它还教授了 Pythonistas 使用的许多技术。这确实是学习 Python 的最佳书籍之一。
它也是一个很好的参考,包含完整的术语表、参考书目和索引。
这本书肯定有科学的 Python 旋转,但如果您没有科学背景,也不必担心。没有数学方程,当你的同事看到你正在阅读计算物理时,你甚至可能会给他们留下深刻的印象!(由史蒂文·C·豪厄尔审阅。)
艰难地学习 Python 3
泽德·肖(艾迪生韦斯利,2016)
艰难地学习Python 是经典。我非常喜欢这本书的方法。当你以“艰难的方式”学习时,你必须:
自己输入所有代码
完成所有练习
为遇到的问题找到自己的解决方案
这本书的伟大之处在于内容的呈现得非常好。每一章都清晰地呈现。代码示例都很简洁、结构良好且切题。这些练习很有启发性,你遇到的任何问题都不是无法克服的。您最大的风险是印刷错误。读完这本书,你绝对不再是 Python 的初学者。
不要让标题让你失望。如果你放眼长远,“艰难的道路”就会变成简单的道路。没有人喜欢输入大量内容,但这就是编程实际涉及的内容,因此从一开始就习惯它是有好处的。这本书的一个好处是,它现在已经通过几个版本进行了完善,所以任何粗糙的边缘现在都已经变得漂亮和光滑。
本书由一系列超过五十个练习 ,每一个都建立在前一个的基础上,并且每一个都教您该语言的一些新功能。从练习 0 开始,在计算机上安装 Python,然后开始编写简单的程序。您将了解变量、数据类型、函数、逻辑、循环、列表、调试、字典、面向对象编程、继承和打包。您甚至可以使用游戏引擎创建一个简单的游戏。
接下来的部分将介绍自动化测试、对用户输入进行词法扫描以解析句子等概念,以及lpthw.web 包 ,将您的游戏发布到网络上。
泽德是一位富有魅力、耐心的作家,从不掩饰细节。如果你以正确的方式(“困难的方式”)学习这本书,即遵循整本书中提供的学习建议以及编程练习,那么当你完成后,你将远远超出初学者程序员阶段。(大卫·施莱辛格审阅。)
笔记: 在本文包含的所有书籍中,这是唯一一本评论褒贬不一的书。 Stack Overflow (SO) 社区编制了一份包含 22 项投诉的清单,并以以下声明开头:
“我们注意到用户使用 [艰难地学习Python ] 发帖提问这没有多大意义 无论是在 SO 上还是在聊天中。这是由于本书中使用的结构和技术造成的。”(来源)
他们提供自己的推荐教程列表 ,其中包括以下内容:
尽管受到负面批评艰难地学习Python 、大卫·施莱辛格和亚马逊评论者 同意这本书是值得的,尽管您可能想用另一本可以更多地作为参考的 Python 书籍来补充您的图书馆。
另外,在向 Stack Overflow 发布问题之前,请务必进行尽职调查,因为该社区有时可能会有些粗暴。
真正的 Python 课程,第 1 部分
真正的Python团队(真正的Python,2017)
这本电子书是(到目前为止)三本电子书中的第一本真正的Python课程系列 。编写它的目的是让您启动并运行,并且它在实现这一目标方面做得很好。本书混合了解释性文章、示例代码和复习练习。穿插的复习练习可以让您立即应用所学知识,从而巩固您的学习成果。
与之前的书籍一样,前面提供了在计算机上安装和运行 Python 的明确说明。在设置部分之后,我们没有给出数据类型的干巴巴的概述,真正的Python 简单地从字符串开始,实际上非常彻底:在到达第 30 页之前,您将学习字符串切片。
然后,本书通过向您展示如何使用一些可以应用的类方法,让您更好地了解 Python 的风格。接下来,您将学习编写函数和循环、使用条件逻辑、使用列表和字典以及读写文件。
然后事情就变得非常有趣了!一旦你学会了安装软件包pip
(并来自来源),真正的Python 涵盖与 PDF 文件交互和操作、在 Python 中使用 SQL、从网页中抓取数据、使用numpy
和matplotlib
进行科学计算,最后创建图形用户界面EasyGUI
和tkinter
.
我最喜欢什么真正的Python 值得注意的是,除了以彻底和友好的方式涵盖基础知识之外,这本书还探索了其他书籍没有涉及到的 Python 的一些更高级的用法,例如网络抓取。还有另外两卷,涉及更高级的 Python 开发。(大卫·施莱辛格审阅。)
免责声明: 我首先开始使用真正的Python 几年前的书,当时还处于测试阶段。我当时认为(现在仍然认为)它们是学习 Python 语言及其多种使用方式的最佳资源之一。我在 Real Python 网站上撰写文章的工作是最近才开发的,我的评论是完全独立的。 - 大卫
最佳儿童 Python 书籍
以下书籍面向有兴趣教孩子编码并同时可能自己学习的成年人。
这两本书都推荐给 9 岁或 10 岁的孩子,但它们也适合年龄较大的孩子。
重要的是要注意,这些书不应该仅仅交给孩子,这取决于他们的年龄。对于想要和孩子一起学习 Python 的父母来说,它们是理想的选择。
Python for Kids:有趣的编程入门
贾森·R·布里格斯(无淀粉,2013)
“好玩”就对了!
尽管它的标题是这样的,但这对所有年龄段的人来说都是一本有趣的书。它提供了清晰、易于理解的 Python 编程介绍。
它有大量插图,示例简单明了,对于那些想要在基础知识上打下良好基础的人来说,这是一本可靠的指南,再加上更多知识。
本书首先提供了一份出色、详细的指南,帮助您在系统上安装 Python,无论是 Windows、OS X 还是 Ubuntu Linux。
然后介绍 Python shell 以及如何将其用作简单的计算器。
这有助于介绍一些基本概念,例如变量和算术运算。
接下来,解决可迭代问题,本章将逐步讨论字符串、列表、元组和字典。
一旦完成,Pythonturtle
库用于开始使用海龟图形,这是一种用于教儿童编码的流行框架。
从这里开始,本书将逐步介绍条件语句、循环、函数和模块。
涵盖了类和对象,接下来是关于 Python 内置函数的真正精彩的部分,然后是关于许多有用的 Python 库和模块的部分。
更详细地回顾了海龟图形,之后本书介绍了tkinter
用于创建用户界面、更好的图形,甚至动画。
本书的第 1 部分“学习编程”到此结束,其余部分重点介绍构建两个有趣的应用程序项目。
第一个项目是构建单人游戏版本乒乓球 ,称为弹跳!
这集成了函数、类和控制流的编程概念,以及使用创建接口的任务tkinter
、在画布上进行说明、执行几何计算以及使用事件绑定来创建交互性。
在第二个项目中,您构建了一款横向卷轴视频游戏《火柴人先生竞速出口》。
该游戏应用了许多与 Bounce! 相同的概念和任务。但更深入、更复杂。
在此过程中,您还将了解开源图像处理程序GIMP ,用于创建游戏的资产。
这本书从这两款游戏中获得了惊人的成果,让它们发挥作用既具有启发性,又很有趣。
我真的喜欢这本书。
无论您是年轻,还是心态年轻,如果您正在寻找有趣、平易近人的 Python 和编程入门书籍,您都会喜欢这本书。(由 David Schlesinger 和 Steven C. Howell 审阅。)
教你的孩子编码:适合家长的 Python 编程指南
布莱森·佩恩(无淀粉,2015)
这本书类似于儿童Python 但正如标题所示,更多的是让成年人与孩子一起学习编码。
这本书与大多数书不同的一点是介绍性书籍 是几乎每一页都使用颜色和插图。
这本书写得很好,将学习编码作为教授孩子解决问题技能的一种方式。
与通常的情况一样,本书从 Python 安装指南开始。
相比儿童Python ,这本书中的指南比较粗略,但完全足够了。
第一个活动还是乌龟图形。
介绍了绘制旋转正方形的许多基本变体(最初没有太多底层解释),只是为了介绍一般概念,但在本节结束时,您将对基本。
接下来,解释 Python 中的计算、变量和数学。一旦涵盖了字符串,本书就会将所有这些带回到海龟图形中,以增强和探索之前完成的工作。至此,代码解释已经非常清晰,逐行详细信息也很明确。您很难误解所提供的任何代码。
接下来探索列表,就像eval()
功能。
引入循环,然后使用循环来创建越来越复杂的乌龟图形。
接下来是条件表达式,以及布尔逻辑和运算符。
这random
图书馆通过猜谜游戏和由海龟图形制成的随机放置的螺旋引入。您可以通过掷骰子和挑选卡片来进一步探索随机性,从而创建游戏 Yahtzee 和 War。
接下来研究功能、更高级的图形和用户交互。
然后,本书分支涵盖使用 PyGame 创建更高级的图形和动画,然后通过用户交互创建一个非常简单的绘图程序。
此时,您已经拥有了创建一些真实游戏的所有工具。介绍了全功能版本的 Pong 和泡泡弹出游戏的开发。两者都提供了足够的深度来提出一些挑战并保持兴趣。
我最喜欢这本书的地方是它提出了大量的编程挑战,以及每章末尾的精彩总结,提醒您所涵盖的内容。
如果你和你的孩子都对编程感兴趣,这本书应该能让你们俩走得更远,并且你们会从中获得很多乐趣。
正如作者 Bryson Payne 博士在《他最近的 TEDx 演讲 ,“走出你的舒适区,精通技术语言。”(由 David Schlesinger 和 Steven C. Howell 审阅。)
了解 Python 是一回事。
了解什么是 Pythonic 需要练习。
有时,Python 的低入门门槛会让人们错误地认为该语言的能力不如其他语言,风格并不重要,或者最佳实践只是一个偏好问题。
你见过看起来像 C 或 Fortran 的 Python 代码吗?
学习如何有效地使用 Python 需要对 Python 的底层功能有一定的了解。
Pythonic 编程利用 Python 语言的实现方式来最大限度地提高代码效率。
幸运的是,有一些优秀的书籍包含专家指导,旨在帮助您运用所学知识并提高您的技能。
本节中的任何书籍都会让您更深入地了解 Python 编程概念并教您如何编写开发者风格 Python 代码。
请注意,这些绝不是介绍性书籍。
它们不包括入门基础知识。
如果您已经在使用 Python 进行编码,并且想要进一步磨练自己的技能,成为一名真正的 Pythonista,那么这些书籍将会很有帮助。
Python 技巧:精彩的 Python 功能自助餐
丹·巴德(dbader.org,2017 年)
本书阐述了鲜为人知的有价值的 Python 功能和最佳实践,旨在帮助您更深入地了解 Python。
43 个小节中的每一小节都提出了一个不同的概念,称为 Python 技巧,并通过讨论和易于理解的代码示例说明了如何利用该概念。
本书的内容分为以下几个部分:
更干净的 Python 模式
有效的功能
类和 OOP
Python 中的常见数据结构
循环和迭代
字典技巧
Pythonic 生产力技巧
正如封面上所说,内容被组织为“自助餐”,每个小节都是一个独立的主题,包括简短的介绍、示例、讨论和列表要点 。
因此,您应该随意跳到最有吸引力的部分。
除了这本书之外,我还特别喜欢购买电子书时可以观看的 12 个奖励视频。
它们的平均长度为 11 分钟,非常适合午餐时观看。
每个视频都使用易于重现的清晰简洁的代码示例来说明不同的概念。
虽然有些视频涵盖了熟悉的概念,但它们仍然提供了有趣的见解,而且不拖沓。(由史蒂文·C·豪厄尔审阅。)
在亚马逊上查看 »
在真正的 Python 上查看 »
免责声明: 尽管本书是通过 Real Python 正式发行的,但我推荐它与我与 Real Python 的关系无关。
我在本书首次发行时购买了这本书,当时我还有机会为 Real Python 编写代码。
要进一步证明本书的价值,请查看亚马逊评论 : 148,平均 4.8 星(满分 5 星),在本次评论时。 — 史蒂夫
流利的Python:清晰、简洁、有效的编程
卢西亚诺·拉马略(奥莱利,2014)
本书是为希望精通 Python 3 且经验丰富的 Python 2 程序员编写的。
因此,本书非常适合那些在 Python 2 或 3 基础知识方面拥有扎实基础并希望将自己的技能提升到新水平的人。
此外,对于来自另一种语言、想要查找“我如何做”的经验丰富的程序员来说,这本书也可以作为参考。<x>
用Python?”
本书按主题组织,以便每个部分都可以独立阅读。
虽然本书涵盖的许多主题都可以在介绍性书籍中找到,流利的Python 提供了更多细节,阐明了 Python 语言的许多更微妙和被忽视的功能。
这些章节分为以下六个部分:
序幕 :介绍Python的面向对象本质以及保持Python库一致的特殊方法
数据结构 :涵盖了序列、映射、集合以及它们之间的区别str
和bytes
函数作为对象 :解释了Python语言中函数作为一等对象的后果
面向对象的习语 :包括引用、可变性、实例、多重继承和运算符重载
控制流 :超出了基本条件,涵盖了生成器、上下文管理器、协程的概念,yield from
语法和并发性使用asyncio
元编程 :探索类的鲜为人知的方面,讨论动态属性和特性、属性描述符、类装饰器和元类
几乎每一页都有代码示例,以及将代码行与有用描述链接起来的编号标注,这本书非常平易近人。
此外,代码示例面向交互式 Python 控制台,这是探索和学习所提出概念的实用方法。
当我有一个 Python 问题并且想要比我在 Stack Overflow 上得到的解释更彻底的解释时,我发现自己会转向这本书。
当我有一点空闲时间并且只想学习新东西时,我也喜欢阅读这本书。
我不止一次发现我最近从这本书中学到的一个概念出乎意料地成为了我必须解决的问题的完美解决方案。(由史蒂文·C·豪厄尔审阅。)
有效的 Python:编写更好的 Python 的 59 种方法
布雷特·斯拉特金(艾迪生韦斯利,2015)
本书汇集了 59 篇独立文章,这些文章以对 Python 的基本理解为基础,教授 Python 最佳实践、鲜为人知的功能和内置工具。
这些主题的复杂性各不相同,从了解您正在使用哪个 Python 版本的简单概念开始,到识别内存泄漏这一更复杂且通常被忽视的概念结束。
每篇文章都结合了示例代码、讨论和需要记住的事项列表。
由于每篇文章都是独立的,因此这是一本可以跳来跳去的好书,让您可以专注于最适用或最有趣的主题。
这也使得它非常适合一次阅读一篇文章。
每篇文章的长度约为两到四页,您可以每天抽出时间阅读一篇文章,在两到三个月内读完这本书(取决于您是否在周末阅读)。
文章分为以下 8 章:
Python式思维 :介绍执行常见任务的最佳方法,同时利用 Python 的实现方式
功能 :阐明了Python函数的细微差别,并概述了如何使用函数来阐明意图、促进重用、减少错误
类和继承 :概述了使用 Python 类时的最佳实践
元类和属性 :阐明元类有些神秘的主题,教您如何使用它们来创建直观的功能
并发和并行 :解释如何知道如何用Python编写多线程应用程序
内置模块 :介绍一些 Python 鲜为人知的内置库,使您的代码更加有用和可靠
合作 :讨论正确的文档、打包、依赖关系和虚拟环境
生产 :涵盖调试、优化、测试和内存管理等主题
如果你在 Python 方面有扎实的基础,并且想要填补漏洞、加深理解并学习 Python 的一些不太明显的功能,那么这对你来说将是一本很棒的书。(由史蒂文·C·豪厄尔审阅。)
Python 食谱
大卫·比兹利和布莱恩·琼斯(奥莱利,第 3 版,2013 年)
这本书的突出之处在于它的详细程度。代码食谱 通常被设计为简短而亲切的手册,以说明完成日常任务的巧妙方法。
在这种情况下,每个食谱Python 食谱 有一个扩展的代码解决方案以及作者对该解决方案的一些特定元素的讨论。
每个配方都以清晰的问题陈述开始,例如,“您想要编写一个装饰器,为包装函数的调用签名添加一个额外的参数。”然后,它会跳转到使用现代、惯用的 Python 3 代码、模式和数据结构的解决方案,通常会花费四到五页的时间来讨论该解决方案。
基于其更复杂、更复杂的示例,以及作者在序言中自己的推荐,这可能是我们列表中最高级的 Python 书籍。
尽管如此,如果您认为自己是中级 Python 程序员,请不要害怕。
无论如何,谁来评判?
有句老话是这样说的:
“成为一名更好的篮球运动员的最好方法是输给你能找到的最好的球员,而不是击败最差的球员。”
您可能会看到一些您不完全理解的代码块——几个月后再回来查看它们。当你掌握了一些额外的概念后,重新阅读这些部分,突然间,你就会明白了。大多数章节一开始都相当简单,然后逐渐变得更加激烈。
本书的后半部分阐述了装饰器模式、闭包、访问器函数和回调函数等设计。
从值得信赖的来源阅读总是好的,而这本书的作者当然符合这一要求。大卫·比兹利 (David Beazley) 经常出现在PyCon 等活动的主讲人 以及作者Python 基本参考 。同样,Brian K. Jones 是 CTO、Python 杂志的创始人以及普林斯顿的 Python 用户组 (PUG-IP) .
此特定版本是使用 Python 3.3 编写和测试的。(布拉德·所罗门审阅。)