最好的 Python 书籍

2023-12-03

在本文中,我们通过一系列书评重点介绍学习 Python 的最佳书籍。每篇评论都会让您对这本书、所涵盖的主题以及用于说明这些主题的上下文有所了解。不同的书会引起不同的人的共鸣,这取决于书籍的风格和呈现方式、读者的背景以及其他因素。

Python 是一种令人惊叹的编程语言。它可以应用于几乎任何编程任务,允许快速开发和调试,并带来可以说是最受欢迎的用户社区的支持。

开始使用 Python 就像学习任何新技能一样:找到可以连接的资源来指导您的学习非常重要。幸运的是,不乏优秀的书籍可以帮助您学习编程的基本概念和 Python 编程的细节。由于资源丰富,很难确定哪本书最适合您的情况。

如果您是 Python 新手,可以使用以下任一方法介绍性书籍将为您打下坚实的基础。

也许您想和您的孩子一起学习 Python,或者向一群孩子教 Python。 查看最好的 Python 儿童书籍针对年轻受众的资源。

随着您在 Python 之旅中取得进展,您将希望更深入地挖掘以最大限度地提高代码效率。这最好的中级和高级Python书籍提供见解来帮助您提高 Python 技能,使您成为 Python 专家。

阅读这些评论后,如果您仍然不确定选择哪本书,出版商通常会提供示例章节或部分,以向您展示该书提供的内容。阅读这本书的样本应该能让你对作者的节奏、风格和期望最有代表性的了解。

无论哪本书最引人注目,请考虑一下我们的书评家史蒂文·C·豪厄尔(Steven C. Howell)的轶事:

“一位我最喜欢的教授曾经告诉我,‘你先读哪本书并不重要。总是第二个最有意义。”

我不能说我一直都是这样,但我确实发现,当第一个参考资料让我感到困惑或沮丧时,第二个参考资料可以让一切变得不同。

在学习 Python 课程时,我很难理解前两本书中使用的示例。 直到我提到的第三本书,这些概念才开始流行起来。

重要的教训是,如果你陷入困境或沮丧,并且你拥有的资源没有帮助,那么不要放弃。看另一本书,搜索网络,在论坛上提问,或者只是休息一下。”

笔记:本文包含 Amazon 等零售商的附属链接,因此您可以通过点击某些链接并进行购买来支持 Real Python。从这些链接之一购买不会给您增加额外费用。附属链接绝不会以任何方式影响我们的编辑决策。

学习 Python 的最佳书籍

如果您是 Python 新手,您可能会遇到以下两种情况之一:

  1. 您是编程新手,想从学习 Python 开始。
  2. 您拥有一定的其他语言编程经验,现在想要学习 Python。

本节重点讨论这两个场景中的第一个,并对我们认为是编程和 Python 新手读者的最佳 Python 编程书籍进行了评论。因此,这些书不需要任何编程经验。他们从绝对基础知识开始,教授一般编程概念以及它们如何应用于 Python。

笔记:如果您正在寻找适合经验丰富的程序员的最佳 Python 书籍,请考虑以下精选的书籍,其中包含完整的评论介绍先进的部分:

  • 想想Python:这个列表中最基本的,想想Python提供全面的 Python 参考。
  • 流利的Python:虽然 Python 的简单性可以让您快速开始编码,但本书教您如何编写惯用的 Python 代码,同时深入探讨该语言的几个深层主题。
  • 有效的 Python:编写更好的 Python 的 59 种方法:这本相对较短的书收录了 59 篇文章,类似于流利的Python,专注教你如何编写真正的Pythonic代码。
  • Python 食谱:作为一本食谱,这将是关于如何使用 Python 完成您用其他语言完成的任务的很好的参考。

或者,您甚至可能更愿意直接前往官方Python教程,一个写得很好的、详尽的资源。

Python 速成课程

埃里克·马蒂斯(无淀粉出版社,2016)

"Python Crash Course" Book Cover

它确实做到了罐头上所说的那样,而且做得非常好。本书首先介绍了基本的 Python 元素和数据结构,包括变量、字符串、数字、列表和元组,概述了如何使用它们。

下一个,if涵盖了语句和逻辑测试,然后深入介绍了字典。

之后,本书涵盖了用户输入,while 循环、函数、类和文件处理,以及代码测试和调试。

这只是本书的前半部分!在下半年,您将从事三个主要项目,创建一些聪明、有趣的应用程序。

第一个项目是一款外星人入侵游戏,本质上是太空入侵者,使用pygame包裹。您设计一艘船(使用类别),然后编写如何驾驶它并使其发射子弹的程序。然后,你设计几个类别的外星人,让外星人舰队移动,并使其能够击落它们。最后,您添加记分板和高分列表来完成游戏。

之后,下一个项目将涵盖数据可视化matplotlib、随机游走、掷骰子和一些统计分析,使用pygal包裹。您将学习如何下载各种格式的数据、将其导入 Python 并可视化结果,以及如何与 Web API 交互、从 GitHub 和 HackerNews 检索和可视化数据。

第三个项目将引导您使用 Django 创建完整的 Web 应用程序,并设置学习日志来跟踪用户一直在学习的内容。它涵盖了如何安装 Django、设置项目、设计模型、创建管理界面、设置用户帐户、管理每个用户的访问控制、使用 Bootstrap 设计整个应用程序,最后将其部署到 Heroku 。

这本书写得很好,组织得很好。它提供了大量有用的练习以及构成本书后半部分的三个具有挑战性和娱乐性的项目。(大卫·施莱辛格审阅。)

  • 在亚马逊上查看 »
  • 在出版商网站上查看 »

《Head-First Python》,第二版

保罗·巴里(奥莱利,2016)

"Head-First Python" Book Cover

我真的很喜欢头朝前系列书籍,尽管不可否认,它们的整体内容比本节中的许多其他推荐书要轻。代价是这种方法使本书更加用户友好。

如果你是那种喜欢一次学习一小部分、相当独立的东西的人,并且你想要大量具体的例子和所涉及概念的说明,那么头朝前系列适​​合您。出版商的网站对他们的方法有以下说明:

“根据认知科学和学习理论的最新研究,深入了解Python使用视觉丰富的格式来吸引您的注意力,而不是让您入睡的大量文本方法。为什么要把时间浪费在新概念上呢?这种多感官学习体验是为您的大脑真正运作的方式而设计的。”(来源)

充满了插图、例子、旁白和其他花絮,深入了解Python始终引人入胜且易于阅读。本书通过深入研究列表并解释如何使用和操作它们来开始 Python 之旅。然后它进入模块、错误和文件处理。每个主题都围绕一个统一的项目进行组织:通过通用网关接口 (CGI) 使用 Python 为学校体育教练构建一个动态网站。

之后,本书会花时间教您如何使用 Android 应用程序与您创建的网站进行交互。您将学习处理用户输入、整理数据,并研究在 Web 上部署和扩展 Python 应用程序所涉及的内容。

虽然这本书不像其他一些书那么全面,但它以一种可以说更容易理解、更轻松、更有效的方式涵盖了一系列 Python 任务。如果您一开始发现编写程序的主题有些令人生畏,则尤其如此。

本书旨在指导您应对任何挑战。虽然内容更加集中,但这本书有大量的材料可以让你忙碌和学习。你不会感到无聊。如果您发现大多数编程书籍都过于枯燥,那么这可能是一本适合您入门 Python 的优秀书籍。(由 David Schlesinger 和 Steven C. Howell 审阅。)

  • 在亚马逊上查看 »
  • 在出版商网站上查看 »

用 Python 发明你自己的电脑游戏,第四版

阿尔·斯威加特(无淀粉,2017)

"Invent Your Own Computer Games with Python" Book Cover

如果您喜欢游戏,或者您甚至有自己的游戏创意,那么这将是学习 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)

"Think Python: How to Think Like a Computer Scientist" Book Cover

如果通过创建视频游戏来学习 Python 对你来说太无聊了,可以考虑一下 Allen Downey 的书想想Python,这需要更严肃的方法。

正如标题所示,本书的目标是教你如何编码思考关于编码,它做得很好。与其他书籍相比,它更加干燥并且以更加线性的方式组织。本书以非常简单、清晰和全面的方式重点介绍了您需要了解的基本 Python 编程的所有内容。

与其他类似的书籍相比,它并没有深入到一些更高级的领域,而是涵盖了更广泛的材料,包括其他书籍没有涉及的主题。此类主题的示例包括运算符重载、多态性、算法分析以及可变性与不变性。

以前的版本练习量有点少,但最新版本很大程度上纠正了这个缺点。 这本书包含四个相当深入的项目,以案例研究的形式呈现,但总的来说,与许多其他书籍相比,它的定向应用练习较少。

如果您喜欢逐步介绍事实,并且想进一步了解专业程序员如何看待问题,那么这本书是一个不错的选择。(由 David Schlesinger 和 Steven C. Howell 审阅。)

  • 在亚马逊上查看 »
  • 在出版商网站上查看 »

物理学中的有效计算:Python 研究现场指南

安东尼·斯科帕茨,凯瑟琳·D·赫夫(奥莱利,2015)

Effective Computation in Physics

这是我第一次学习 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)

"Learn Python 3 The Hard Way" Book Cover

艰难地学习Python是经典。我非常喜欢这本书的方法。当你以“艰难的方式”学习时,你必须:

  1. 自己输入所有代码
  2. 完成所有练习
  3. 为遇到的问题找到自己的解决方案

这本书的伟大之处在于内容的呈现得非常好。每一章都清晰地呈现。代码示例都很简洁、结构良好且切题。这些练习很有启发性,你遇到的任何问题都不是无法克服的。您最大的风险是印刷错误。读完这本书,你绝对不再是 Python 的初学者。

不要让标题让你失望。如果你放眼长远,“艰难的道路”就会变成简单的道路。没有人喜欢输入大量内容,但这就是编程实际涉及的内容,因此从一开始就习惯它是有好处的。这本书的一个好处是,它现在已经通过几个版本进行了完善,所以任何粗糙的边缘现在都已经变得漂亮和光滑。

本书由一系列超过五十个练习,每一个都建立在前一个的基础上,并且每一个都教您该语言的一些新功能。从练习 0 开始,在计算机上安装 Python,然后开始编写简单的程序。您将了解变量、数据类型、函数、逻辑、循环、列表、调试、字典、面向对象编程、继承和打包。您甚至可以使用游戏引擎创建一个简单的游戏。

接下来的部分将介绍自动化测试、对用户输入进行词法扫描以解析句子等概念,以及lpthw.web 包,将您的游戏发布到网络上。

泽德是一位富有魅力、耐心的作家,从不掩饰细节。如果你以正确的方式(“困难的方式”)学习这本书,即遵循整本书中提供的学习建议以及编程练习,那么当你完成后,你将远远超出初学者程序员阶段。(大卫·施莱辛格审阅。)

  • 在亚马逊上查看 »
  • 在作者网站上查看 »

笔记:在本文包含的所有书籍中,这是唯一一本评论褒贬不一的书。 Stack Overflow (SO) 社区编制了一份包含 22 项投诉的清单,并以以下声明开头:

“我们注意到用户使用 [艰难地学习Python] 发帖提问这没有多大意义无论是在 SO 上还是在聊天中。这是由于本书中使用的结构和技术造成的。”(来源)

他们提供自己的推荐教程列表,其中包括以下内容:

尽管受到负面批评艰难地学习Python、大卫·施莱辛格和亚马逊评论者同意这本书是值得的,尽管您可能想用另一本可以更多地作为参考的 Python 书籍来补充您的图书馆。 另外,在向 Stack Overflow 发布问题之前,请务必进行尽职调查,因为该社区有时可能会有些粗暴。

真正的 Python 课程,第 1 部分

真正的Python团队(真正的Python,2017)

Real Python Logo

这本电子书是(到目前为止)三本电子书中的第一本真正的Python课程系列。编写它的目的是让您启动并运行,并且它在实现这一目标方面做得很好。本书混合了解释性文章、示例代码和复习练习。穿插的复习练习可以让您立即应用所学知识,从而巩固您的学习成果。

与之前的书籍一样,前面提供了在计算机上安装和运行 Python 的明确说明。在设置部分之后,我们没有给出数据类型的干巴巴的概述,真正的Python简单地从字符串开始,实际上非常彻底:在到达第 30 页之前,您将学习字符串切片。

然后,本书通过向您展示如何使用一些可以应用的类方法,让您更好地了解 Python 的风格。接下来,您将学习编写函数和循环、使用条件逻辑、使用列表和字典以及读写文件。

然后事情就变得非常有趣了!一旦你学会了安装软件包pip(并来自来源),真正的Python涵盖与 PDF 文件交互和操作、在 Python 中使用 SQL、从网页中抓取数据、使用numpymatplotlib进行科学计算,最后创建图形用户界面EasyGUItkinter.

我最喜欢什么真正的Python值得注意的是,除了以彻底和友好的方式涵盖基础知识之外,这本书还探索了其他书籍没有涉及到的 Python 的一些更高级的用法,例如网络抓取。还有另外两卷,涉及更高级的 Python 开发。(大卫·施莱辛格审阅。)

  • 在真正的 Python 上查看 »

免责声明:我首先开始使用真正的Python几年前的书,当时还处于测试阶段。我当时认为(现在仍然认为)它们是学习 Python 语言及其多种使用方式的最佳资源之一。我在 Real Python 网站上撰写文章的工作是最近才开发的,我的评论是完全独立的。 - 大卫

最佳儿童 Python 书籍

以下书籍面向有兴趣教孩子编码并同时可能自己学习的成年人。 这两本书都推荐给 9 岁或 10 岁的孩子,但它们也适合年龄较大的孩子。

重要的是要注意,这些书不应该仅仅交给孩子,这取决于他们的年龄。对于想要和孩子一起学习 Python 的父母来说,它们是理想的选择。

Python for Kids:有趣的编程入门

贾森·R·布里格斯(无淀粉,2013)

"Python for Kids: A Playful Introduction to Programming" Book Cover

“好玩”就对了! 尽管它的标题是这样的,但这对所有年龄段的人来说都是一本有趣的书。它提供了清晰、易于理解的 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)

"Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming" Book Cover

这本书类似于儿童Python但正如标题所示,更多的是让成年人与孩子一起学习编码。 这本书与大多数书不同的一点是介绍性书籍是几乎每一页都使用颜色和插图。 这本书写得很好,将学习编码作为教授孩子解决问题技能的一种方式。

与通常的情况一样,本书从 Python 安装指南开始。 相比儿童Python,这本书中的指南比较粗略,但完全足够了。

第一个活动还是乌龟图形。 介绍了绘制旋转正方形的许多基本变体(最初没有太多底层解释),只是为了介绍一般概念,但在本节结束时,您将对基本。

接下来,解释 Python 中的计算、变量和数学。一旦涵盖了字符串,本书就会将所有这些带回到海龟图形中,以增强和探索之前完成的工作。至此,代码解释已经非常清晰,逐行详细信息也很明确。您很难误解所提供的任何代码。

接下来探索列表,就像eval()功能。 引入循环,然后使用循环来创建越来越复杂的乌龟图形。 接下来是条件表达式,以及布尔逻辑和运算符。

random图书馆通过猜谜游戏和由海龟图形制成的随机放置的螺旋引入。您可以通过掷骰子和挑选卡片来进一步探索随机性,从而创建游戏 Yahtzee 和 War。

接下来研究功能、更高级的图形和用户交互。

然后,本书分支涵盖使用 PyGame 创建更高级的图形和动画,然后通过用户交互创建一个非常简单的绘图程序。

此时,您已经拥有了创建一些真实游戏的所有工具。介绍了全功能版本的 Pong 和泡泡弹出游戏的开发。两者都提供了足够的深度来提出一些挑战并保持兴趣。

我最喜欢这本书的地方是它提出了大量的编程挑战,以及每章末尾的精彩总结,提醒您所涵盖的内容。 如果你和你的孩子都对编程感兴趣,这本书应该能让你们俩走得更远,并且你们会从中获得很多乐趣。 正如作者 Bryson Payne 博士在《他最近的 TEDx 演讲,“走出你的舒适区,精通技术语言。”(由 David Schlesinger 和 Steven C. Howell 审阅。)

  • 在亚马逊上查看 »
  • 在出版商网站上查看 »

最佳中级和高级 Python 书籍

了解 Python 是一回事。 了解什么是 Pythonic 需要练习。 有时,Python 的低入门门槛会让人们错误地认为该语言的能力不如其他语言,风格并不重要,或者最佳实践只是一个偏好问题。 你见过看起来像 C 或 Fortran 的 Python 代码吗?

学习如何有效地使用 Python 需要对 Python 的底层功能有一定的了解。 Pythonic 编程利用 Python 语言的实现方式来最大限度地提高代码效率。

幸运的是,有一些优秀的书籍包含专家指导,旨在帮助您运用所学知识并提高您的技能。 本节中的任何书籍都会让您更深入地了解 Python 编程概念并教您如何编写开发者风格Python 代码。 请注意,这些绝不是介绍性书籍。 它们不包括入门基础知识。 如果您已经在使用 Python 进行编码,并且想要进一步磨练自己的技能,成为一名真正的 Pythonista,那么这些书籍将会很有帮助。

Python 技巧:精彩的 Python 功能自助餐

丹·巴德(dbader.org,2017 年)

"Python Tricks" Book Cover

本书阐述了鲜为人知的有价值的 Python 功能和最佳实践,旨在帮助您更深入地了解 Python。 43 个小节中的每一小节都提出了一个不同的概念,称为 Python 技巧,并通过讨论和易于理解的代码示例说明了如何利用该概念。

本书的内容分为以下几个部分:

  • 更干净的 Python 模式
  • 有效的功能
  • 类和 OOP
  • Python 中的常见数据结构
  • 循环和迭代
  • 字典技巧
  • Pythonic 生产力技巧

正如封面上所说,内容被组织为“自助餐”,每个小节都是一个独立的主题,包括简短的介绍、示例、讨论和列表要点。 因此,您应该随意跳到最有吸引力的部分。

除了这本书之外,我还特别喜欢购买电子书时可以观看的 12 个奖励视频。 它们的平均长度为 11 分钟,非常适合午餐时观看。 每个视频都使用易于重现的清晰简洁的代码示例来说明不同的概念。 虽然有些视频涵盖了熟悉的概念,但它们仍然提供了有趣的见解,而且不拖沓。(由史蒂文·C·豪厄尔审阅。)

  • 在亚马逊上查看 »
  • 在真正的 Python 上查看 »

免责声明:尽管本书是通过 Real Python 正式发行的,但我推荐它与我与 Real Python 的关系无关。 我在本书首次发行时购买了这本书,当时我还有机会为 Real Python 编写代码。 要进一步证明本书的价值,请查看亚马逊评论: 148,平均 4.8 星(满分 5 星),在本次评论时。 — 史蒂夫

流利的Python:清晰、简洁、有效的编程

卢西亚诺·拉马略(奥莱利,2014)

"Fluent Python" Book Cover

本书是为希望精通 Python 3 且经验丰富的 Python 2 程序员编写的。 因此,本书非常适合那些在 Python 2 或 3 基础知识方面拥有扎实基础并希望将自己的技能提升到新水平的人。 此外,对于来自另一种语言、想要查找“我如何做”的经验丰富的程序员来说,这本书也可以作为参考。<x>用Python?”

本书按主题组织,以便每个部分都可以独立阅读。 虽然本书涵盖的许多主题都可以在介绍性书籍中找到,流利的Python提供了更多细节,阐明了 Python 语言的许多更微妙和被忽视的功能。

这些章节分为以下六个部分:

  1. 序幕:介绍Python的面向对象本质以及保持Python库一致的特殊方法
  2. 数据结构:涵盖了序列、映射、集合以及它们之间的区别strbytes
  3. 函数作为对象:解释了Python语言中函数作为一等对象的后果
  4. 面向对象的习语:包括引用、可变性、实例、多重继承和运算符重载
  5. 控制流:超出了基本条件,涵盖了生成器、上下文管理器、协程的概念,yield from语法和并发性使用asyncio
  6. 元编程:探索类的鲜为人知的方面,讨论动态属性和特性、属性描述符、类装饰器和元类

几乎每一页都有代码示例,以及将代码行与有用描述链接起来的编号标注,这本书非常平易近人。 此外,代码示例面向交互式 Python 控制台,这是探索和学习所提出概念的实用方法。

当我有一个 Python 问题并且想要比我在 Stack Overflow 上得到的解释更彻底的解释时,我发现自己会转向这本书。 当我有一点空闲时间并且只想学习新东西时,我也喜欢阅读这本书。 我不止一次发现我最近从这本书中学到的一个概念出乎意料地成为了我必须解决的问题的完美解决方案。(由史蒂文·C·豪厄尔审阅。)

  • 在亚马逊上查看 »
  • 在出版商网站上查看 »

有效的 Python:编写更好的 Python 的 59 种方法

布雷特·斯拉特金(艾迪生韦斯利,2015)

"Effective Python: 59 Ways to Write Better Python" Book Cover

本书汇集了 59 篇独立文章,这些文章以对 Python 的基本理解为基础,教授 Python 最佳实践、鲜为人知的功能和内置工具。 这些主题的复杂性各不相同,从了解您正在使用哪个 Python 版本的简单概念开始,到识别内存泄漏这一更复杂且通常被忽视的概念结束。

每篇文章都结合了示例代码、讨论和需要记住的事项列表。

由于每篇文章都是独立的,因此这是一本可以跳来跳去的好书,让您可以专注于最适用或最有趣的主题。 这也使得它非常适合一次阅读一篇文章。 每篇文章的长度约为两到四页,您可以每天抽出时间阅读一篇文章,在两到三个月内读完这本书(取决于您是否在周末阅读)。

文章分为以下 8 章:

  1. Python式思维:介绍执行常见任务的最佳方法,同时利用 Python 的实现方式
  2. 功能:阐明了Python函数的细微差别,并概述了如何使用函数来阐明意图、促进重用、减少错误
  3. 类和继承:概述了使用 Python 类时的最佳实践
  4. 元类和属性:阐明元类有些神秘的主题,教您如何使用它们来创建直观的功能
  5. 并发和并行:解释如何知道如何用Python编写多线程应用程序
  6. 内置模块:介绍一些 Python 鲜为人知的内置库,使您的代码更加有用和可靠
  7. 合作:讨论正确的文档、打包、依赖关系和虚拟环境
  8. 生产:涵盖调试、优化、测试和内存管理等主题

如果你在 Python 方面有扎实的基础,并且想要填补漏洞、加深理解并学习 Python 的一些不太明显的功能,那么这对你来说将是一本很棒的书。(由史蒂文·C·豪厄尔审阅。)

  • 在亚马逊上查看 »
  • 在作者网站上查看 »

Python 食谱

大卫·比兹利和布莱恩·琼斯(奥莱利,第 3 版,2013 年)

Python Cookbook, 3rd. Edition

这本书的突出之处在于它的详细程度。代码食谱通常被设计为简短而亲切的手册,以说明完成日常任务的巧妙方法。 在这种情况下,每个食谱Python 食谱有一个扩展的代码解决方案以及作者对该解决方案的一些特定元素的讨论。

每个配方都以清晰的问题陈述开始,例如,“您想要编写一个装饰器,为包装函数的调用签名添加一个额外的参数。”然后,它会跳转到使用现代、惯用的 Python 3 代码、模式和数据结构的解决方案,通常会花费四到五页的时间来讨论该解决方案。

基于其更复杂、更复杂的示例,以及作者在序言中自己的推荐,这可能是我们列表中最高级的 Python 书籍。 尽管如此,如果您认为自己是中级 Python 程序员,请不要害怕。 无论如何,谁来评判? 有句老话是这样说的:

“成为一名更好的篮球运动员的最好方法是输给你能找到的最好的球员,而不是击败最差的球员。”

您可能会看到一些您不完全理解的代码块——几个月后再回来查看它们。当你掌握了一些额外的概念后,重新阅读这些部分,突然间,你就会明白了。大多数章节一开始都相当简单,然后逐渐变得更加激烈。

本书的后半部分阐述了装饰器模式、闭包、访问器函数和回调函数等设计。

从值得信赖的来源阅读总是好的,而这本书的作者当然符合这一要求。大卫·比兹利 (David Beazley) 经常出现在PyCon 等活动的主讲人以及作者Python 基本参考。同样,Brian K. Jones 是 CTO、Python 杂志的创始人以及普林斯顿的 Python 用户组 (PUG-IP).

此特定版本是使用 Python 3.3 编写和测试的。(布拉德·所罗门审阅。)

  • 在亚马逊上查看 »
  • 在出版商网站上查看 »

开始编码!

Python 的一大优点是,与许多其他语言相比,它的入门门槛相对较低。 尽管如此,学习Python是一个永无止境的过程。 该语言与各种各样的任务相关,并且不断发展,总是有新的东西需要发现和学习。 虽然你可以在一两周内学会足够的 Python 来做一些有趣的事情,但已经使用 Python 二十年的人会告诉你,他们仍在学习使用这种灵活且不断发展的语言可以做的新事情。

为了最终成为一名成功的 Python 程序员,您需要从坚实的基础开始,然后深入了解该语言的工作原理以及如何最好地使用它。 为了打下坚实的基础,任何一个都不会出错学习Python的最佳书籍。 如果你想和一个孩子一起学习 Python,或者教一群孩子,请查看最适合儿童的 Python 书籍列表。 弄湿双脚后,请查看一些最好的中级和高级Python书籍深入挖掘不太明显的概念,这将提高代码的效率。

所有这些书都会教你需要知道什么才能合法地称自己为 Python 程序员。 唯一缺少的成分是you.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最好的 Python 书籍 的相关文章

  • IntelliJ IDEA 2022.3.2 (Community Edition)中应用kotlin的android扩展

    前几天 xff0c 突然想试试在android上如何启用一个app xff0c 于是经过选择 xff0c 选择了kotlin语言来实现 网上说要先安装intellij idea的环境 xff0c 安装好后 xff0c 按照helloworl
  • MxNet系列——community——contribute

    博客新址 http blog xuezhisd top 邮箱 xff1a xuezhisd 64 126 com 对MXNet做贡献 MXNet是由一群活跃的社区成员开发和使用的 请对其贡献 xff0c 以改善它 当你的补丁被合并时 xff
  • Ubuntu 18.04 install docker-ce(community)

    Ubuntu 18 04 install docker ce community 1 Older versions of Docker were called docker docker io or docker engine If the
  • ChatterBot:使用 Python 构建聊天机器人

    目录 演示 项目概况 先决条件 第 1 步 使用 Python ChatterBot 创建聊天机器人 第 2 步 开始训练您的聊天机器人 第 3 步 导出 WhatsApp 聊天记录 第 4 步 清理您的聊天导出 第 5 步 使用自定义数据
  • 通过真正的 Python Slack 社区提升您的技能

    目录 享受生活 保持好奇心 提出问题并尊重他人 找到提问的最佳渠道 Spend Some Time Composing Your Questions 总结您的问题 为您的问题提供背景信息 提供一个最小的可重复示例 提供追溯 请勿交叉发帖 尝
  • PyCon Africa 2019(回顾)

    目录 PyCon Africa 发生了什么 主会议 穆斯塔法 西塞 人工智能产生积极影响的潜力 Meili Triantafyllidi 在柏林 PyLadies 工作 6 年的经验教训 Candy Tricia Khohliwe 网络虚拟
  • Python 新闻:2023 年 3 月以来的新增内容

    目录 Python 3 12 0 Alpha 6 发布 Python 本地包目录上的 PEP 582 被拒绝 PyCascades 2023 在不列颠哥伦比亚省温哥华举行 PyCon US 2023 招募志愿者 PyPI 发布博客 2022
  • Django 测试(第 1 部分)——最佳实践和示例

    目录 Intro to Testing in Django 测试类型 最佳实践 结构 第三方包 Examples 设置 测试模型 测试视图 测试表格 测试 API 下次 测试至关重要 如果没有正确测试您的代码 您将永远不会知道代码现在或将来
  • Python 3.11 预览:TOML 和 tomllib

    目录 Python 3 11 Beta 很酷的新功能 安装 tomllib TOML Parser in Python 3 11 学习基本 TOML 使用 tomllib 读取 TOML 写入TOML Other New Features
  • NumPy arange():如何使用 np.arange()

    目录 np arange 的返回值和参数 Range Arguments of np arange 提供所有范围参数 提供两个范围参数 提供一个范围参数 提供否定论据 倒数 获取空数组 np arange 的数据类型 使用 np arang
  • Python 中使用 spaCy 进行自然语言处理

    目录 NLP 和 spaCy 简介 安装spaCy 已处理文本的 Doc 对象 句子检测 spaCy 中的令牌 停用词 词形还原 词频 词性标注 可视化 使用 displaCy 预处理函数 使用 spaCy 基于规则的匹配 使用 spaCy
  • Python 中的字典

    目录 定义字典 访问字典值 字典键与列表索引 增量构建字典 字典键的限制 对字典值的限制 运算符和内置函数 Built in Dictionary Methods d clear d get d items d keys d values
  • 适合 Python 程序员的 C

    目录 The C Preprocessor 包括 定义 undef if pragma 错误 Basic C Syntax for Python Programmers 一般的 if 语句 switch 语句 循环 功能 指针 弦乐 结构体
  • Python eval():动态计算表达式

    目录 Understanding Python s eval 第一个参数 表达式 第二个参数 全局变量 第三种说法 本地人 Evaluating Expressions With Python s eval 布尔表达式 数学表达式 通用表达
  • Python heapq 模块:使用堆和优先级队列

    目录 What Are Heaps 数据结构 堆和优先级队列 堆的实现 优先级队列的用途 Heaps as Lists in the Python heapq Module 基本操作 高级别操作 堆可以解决的问题 如何发现问题 Exampl
  • Python 中的 Minimax:学习如何输掉 Nim 游戏

    目录 玩一个简化的 Nim 游戏 Get to Know the Minimax Algorithm 探索游戏树 找到最佳的下一步行动 Lose the Game of Nim Against a Python Minimax Player
  • Python pandas:你可能不知道的技巧和功能

    目录 1 在解释器启动时配置选项和设置 2 用pandas的测试模块制作玩具数据结构 3 利用访问器方法 4 从组件列创建 DatetimeIndex 5 使用分类数据节省时间和空间 6 通过迭代内省 Groupby 对象 7 使用此映射技
  • 视频字幕和脚本现在可在 Real Python 上使用

    嘿 今天我有一个重大更新要分享 真正的 Python 视频课程现在有完整的字幕和成绩单 我认为这对于可访问性有很大帮助 并使您最喜欢的 Python 学习资源更易于查看和搜索 让我们做一个快速演示 现在附带视频课程完整字幕您可以在方便时打开
  • 如何制作引人入胜的编程视频

    目录 Decide When a Programming Video Makes Sense 关注结果 绘制代码示例 做演讲者笔记 Audit Your Setup 准备你的房间 检查你的屏幕 选择录音软件 Clean Up Your Co
  • 在 Python 中使用 len() 函数

    目录 Getting Started With Python s len 将 len 与内置序列一起使用 将 len 与内置集合一起使用 探索 len 与其他内置数据类型 Exploring len Further With Some Ex

随机推荐

  • 加入 Real Python 团队,担任视频课程讲师

    加入 Real Python 团队 担任视频课程讲师 您是否喜欢学习新事物并与数千名 Python 开发人员分享您的知识 realpython com 教程团队以提供最高质量的在线 Python 教程而闻名 我们的使命是 帮助世界各地的 P
  • 2021 年 7 月 14 日

    主持人大卫 阿莫斯回答会员的问题 在这次会议上 我们讨论了 Python 新闻和更新 Python 3 10 中的结构模式匹配是什么 什么是pyproject toml为什么要使用它 如何从 Python 自动运行 Linux 命令 和更多
  • 正则表达式:Python 中的正则表达式(第 2 部分)

    目录 re Module Functions 搜索功能 替代函数 实用功能 Compiled Regex Objects in Python 为什么要费心编译正则表达式 正则表达式对象方法 正则表达式对象属性 Match Object Me
  • 什么是数据工程?它适合您吗?

    目录 数据工程师做什么 What Are the Responsibilities of Data Engineers 数据流 数据标准化和建模 数据清理 数据可访问性 What Are Common Data Engineering Sk
  • 更多锁具

    在本课程中 您将继续探索锁并了解僵局以及如何避免它 锁也称为互斥量在其他语言中 如果您下载示例代码 您可以获得自己的副本11 more locks py 下载 Sample Code zip 12 9KB 要了解更多信息 您还可以查看有关的
  • 模拟开关/外壳 – 完整示例

    该视频总结了有关用 Python 模拟 Switch Case 的课程 在本课程中 您将看到一个真实世界的示例 说明如何使用 Python 字典来模拟 switch caselambda功能 def dispatch dict operat
  • 有效使用 NumPy 的 np.arange()

    数值模拟是数值计算的基本 Python 库 它最重要的类型是数组类型被称为ndarray NumPy 提供了很多数组创建例程对于不同的情况 arange 就是这样一个基于的函数数值范围 它通常被称为np arange 因为np是 NumPy
  • Python 中的 Minimax:学习如何输掉 Nim 游戏

    目录 玩一个简化的 Nim 游戏 Get to Know the Minimax Algorithm 探索游戏树 找到最佳的下一步行动 Lose the Game of Nim Against a Python Minimax Player
  • Python pandas:你可能不知道的技巧和功能

    目录 1 在解释器启动时配置选项和设置 2 用pandas的测试模块制作玩具数据结构 3 利用访问器方法 4 从组件列创建 DatetimeIndex 5 使用分类数据节省时间和空间 6 通过迭代内省 Groupby 对象 7 使用此映射技
  • 版本控制

    你应该使用版本控制随着时间的推移 保留您的对象的完整记录 它还充当防止意外删除对象的保护机制 当您请求版本化对象 Boto3 将检索最新版本 当您添加对象的新版本时 该对象总共占用的存储空间是其版本大小的总和 因此 如果您存储一个 1 GB
  • 在 Python 中使用 JSON 数据

    JSON 是一种轻量级数据交换格式 它允许我们将 Python 程序中的对象表示为可以通过互联网发送的人类可读文本 许多 API 和数据库使用 JSON 进行通信 您将学习如何使用 Python 的内置函数json模块将程序中的数据序列化为
  • Python 社区采访 Eric Wastl

    本周 我们加入了埃里克 瓦斯特 高级架构师TCGP播放器和创始人代码的出现 AoC 请加入我们 讨论 AoC 的起源 在解决 AoC 中的代码挑战时如何避免常见陷阱 以及 Eric 在每年的 3 8 秒 空闲时间中所做的事情 如果您在阅读本
  • 视频字幕和脚本现在可在 Real Python 上使用

    嘿 今天我有一个重大更新要分享 真正的 Python 视频课程现在有完整的字幕和成绩单 我认为这对于可访问性有很大帮助 并使您最喜欢的 Python 学习资源更易于查看和搜索 让我们做一个快速演示 现在附带视频课程完整字幕您可以在方便时打开
  • 识别无效的 Python 语法

    Python 以其简单的语法而闻名 然而 当你第一次学习Python 或者当你在另一种编程语言上有扎实的背景后才开始学习Python 你可能会遇到一些Python不允许的事情 如果您曾经收到过SyntaxError当尝试运行 Python
  • 使用 Python 发送电子邮件

    目录 Getting Started 选项 1 设置 Gmail 帐户进行开发 选项 2 设置本地 SMTP 服务器 Sending a Plain Text Email 启动安全 SMTP 连接 发送您的纯文本电子邮件 Sending F
  • 真正的 Python 安全性和报告

    真正的 Python 安全性和报告 如果您发现安全漏洞 请通过以下方式告知我们信息 security realpython com 我们尝试尽快回复 修复 并非常感谢您的帮助 感谢以下人员发现并负责任地披露了 Real Python 中的安
  • 把它写出来

    当您作为一名新程序员在您的旅程中取得进展时 您可能想知道是否应该做笔记 是的你应该 事实上 研究表明 手写笔记最有利于长期记忆 这对于那些致力于成为全职开发人员的人来说尤其有益 因为许多面试将涉及在白板上编写代码 一旦您开始处理小型项目和程
  • 2020 年 11 月 4 日

    主持人 David Amos 回答了 Real Python 成员的问题 在这次会议上 我们讨论了 Python 新闻和更新 代码如何在导入时运行 这可能是一个问题吗 有关静态网站生成器的更多信息 Python 在硬件项目上的应用 过渡到数
  • 最好的 Python 书籍

    目录 Best Books for Learning Python Python 速成课程 Head First Python 第二版 用 Python 发明你自己的电脑游戏 第四版 思考 Python 如何像计算机科学家一样思考 第二版
  • 选择优先级队列

    优先级队列是队列的特殊实例 其中存储顺序基于内部项目的优先级 这通常用于调度算法 使调度中的某些项目比其他项目更重要 在 Python 中获取优先级队列有多种方法 您可以使用内置的list类型结合sort 函数 根据优先级排序 或者 而不是