Errata
The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted by | Date submitted |
---|---|---|---|---|
Page downloaded code, 02-array-seq/ na, in code downloaded |
running test.sh |
Dave Pawson | Apr 06, 2022 | |
No page numbers on O'Reilly Learning platform! 4th paragraph before 'Further Reading' section of Chapter 11 |
This paragraph includes the sentence: |
Oktay Safak | Apr 11, 2022 | |
No page numbers on O'Reilly Learning platform. 3rd paragraph before 'Further Reading' section of Chapter 11 |
This paragraph contains the sentence: "Because using __slots__ has side effects, it really makes sense only when handling a very large number of instances—think millions of instances, not just thousands. In many such cases, using *pandas* may be the best option." |
OKTAY SAFAK | Apr 11, 2022 | |
Other Digital Version | Chapter 4 in the Warning box just before Example 4.3 WARNING box |
This text in this warning is based on an early draft of PEP 467 from 2014. Search for 3.6 on this page: |
Jack Andeson | Aug 03, 2022 |
Printed, PDF | Page xxii first paragraph |
async dev should be async def |
Anonymous | Sep 11, 2022 |
Printed | Page Page 891 - LineIten Take #4 Last paragraph before the example |
I think the following paragraph: |
Rik Huygen | Dec 29, 2022 |
Printed | Page Page 23, figure 2-1. Top of figure |
The list in both the tuple and the array contains a period where there should be a comma. Also the formatting of the list in the array is missing a space: |
Peter van der Heijden | Jan 05, 2023 |
Printed | Page Page 356 Bottom of page circled 2 |
"Promotion" refers to the "promotion" decorator and not to the "Promotion" type alias and should therefore not be capitalized. |
Peter van der Heijden | Jan 14, 2023 |
Explanation for example 19-14 Callout #8 |
The sentence says: |
David Whittaker | May 04, 2023 | |
Printed | Page Page 629 Table 17-4 |
The keyword argument for itertools.permutations seems to be wrong. In the text, it is presented as permutations(it, out_len=None), where out_len is the key word argument. However, that results in a TypeError for Python 3.10 - |
Alexander Lapanowski | May 12, 2023 |
Page Page 482 (pdf) Example 8-18. mode_hashable.py |
In Example 8-18... |
Craig Richards | Nov 30, 2023 | |
Printed | Page 10 code: v1 = Vector(2, 4) ... |
The codes v1 = Vector(2, 4) and the rest on page 10 show an error: |
Anonymous | Jan 16, 2023 |
Other Digital Version | 55 Example 2.17 |
Section "A += Assignment Puzzler": The list of possible answers to the puzzle is numbered numerically (1 to 4), but answer 4 refers to "Both A and B", which either should read "Both 1 and 2" or the list should be numbered with letters. |
David Zerrenner | May 05, 2022 |
Printed | Page 68 Table 2-4 |
The deque implements some of the missing methods starting from python 3.5, see the official documentation: |
Radek Ježek | Dec 27, 2022 |
Printed | Page 89 footnote |
"method as a first-class function" -> "method as a first-class object" |
Anonymous | Nov 26, 2022 |
Page 166 Code block |
In the code for Example 5-2, book's output gives the answer False, for |
Fazil Amirli | Dec 19, 2022 | |
Page 247 2nd paragraph |
Minor error, last sentence of the second paragraph, text is "That is our next subject. *Bold Text*opmod07". |
Anonymous | Jul 04, 2022 | |
Printed | Page 268 First paragraph |
In the second sentence, the entirety of the first instance of the phrase “is subtype-of” is italicized, while the second instance only has “subtype-of” italicized. The phrase is partially italicized when introduced on page 267. |
Samuel Jenkins | Jan 02, 2023 |
Page 276 Example 8-13 |
num_rows, reminder = divmod(len(sequence), num_columns) |
Anonymous | Jan 19, 2023 | |
Page 292 4th line |
The following example in Chapter 8 ("Types Usable in Annotations" > "Callable") contains a syntax error (extra "]"): |
E M | Jul 10, 2022 | |
Printed | Page 316 Example 9-11 |
The output from "avg.__closure__[0].cell_contents" should read "[10, 11, 15]" instead, given we called the "avg" function three times with 10, 11, and 15 respectively in Example 9-9. |
Jerry Wang | Jan 08, 2024 |
Printed | Page 394 3rd paragraph |
The paragraph speaks of "xor-ing the hashes of the instances attributes", but on page 378, there is no XOR operation to be found. The next chapter, 12, introduces the class Vector, which DOES use XOR on all the hashes of the attributes. This is better categorized as a medium serious technical issue, as it left me going back and forth, between the two pages looking for a nonresistant XOR. |
Daniel S. Cox | Jan 25, 2024 |
Printed | Page 398 2nd paragraph |
There is a line ending with the following test, it appears the underscores are accidental and perhaps were intended to put Fluent Python in italics: |
Jonathan Grindstaff | Apr 10, 2023 |
Page 412 TIP |
in the first sentence. |
harumonia | Aug 09, 2023 | |
Page 414 warning section |
but for *, & it should be 1 |
Yifan Pan | Sep 21, 2022 | |
Page 440 Defensive Programming and “Fail Fast” paragraph |
"[…] for example, rejecting invalid arguments right a the beginning of a function body." → "[…] for example, rejecting invalid arguments right aT the beginning of a function body." |
Krzysztof Mierzejewski | Feb 28, 2023 | |
Page 461 Figure 13-7 |
"list" type does not have "__bool__" method implemented. |
Anonymous | Jan 20, 2024 | |
Printed | Page 472 3rd paragraph |
..., but it turns out this is example not a particularly good ... |
Andreas Kanz | Aug 29, 2022 |
Printed | Page 474 warnings block |
isssue written with a 3rd "s" |
Andreas Kanz | Aug 29, 2022 |
Printed | Page 503 3rd paragraph: "Since every method ot UpperCaseMixin..." |
Since every method ot UpperCaseMixin calls... |
Anonymous | Jul 06, 2022 |
Printed | Page 511 General Note |
The General Note has "...it is interesting to note that the some of the deepest..." when it should be "...it is interesting to note that some of the deepest..." as the first article is unnecessary. |
Samuel Woodward | Feb 16, 2023 |
Printed, PDF | Page 539 the last sentence in a quote from PEP 563 at the top of the page |
The word "annotations" is written in italics and has no surrounding underscores. |
Alexander Tarasov | Jan 23, 2024 |
Printed, PDF | Page 540 2nd item in a bulleted list at the bottom of the page |
The word "in spect" is written with an extra space, must be: "inspect". |
Alexander Tarasov | Jan 23, 2024 |
Printed | Page 580 Table 16-1 |
Table 16-1 refers to an infix operation "__idivmod__" which does not exist. Unlike the other operators in the table, divmod does not support augmented assignment; see the section "emulating numeric types" of the python data model reference for confirmation of this. |
Alden Bradford | Dec 16, 2022 |
Printed, PDF | Page 617 2nd paragraph |
The ArithmeticProgression class from ... and is a another example → is another example |
Alexander Tarasov | Feb 06, 2024 |
Printed, PDF | Page 629 5th item in the code explanation section |
"Here the reverse generator...": reverse -> reversed |
Alexander Tarasov | Feb 24, 2024 |
Printed, PDF | Page 690 5th paragraph |
...a short post explaining why its useful -> it's useful |
Alexander Tarasov | Mar 25, 2024 |
Page 698 1st & 2nd paragraphs |
``` |
Vitaliy Yelnik | Aug 21, 2023 | |
Other Digital Version | 771 Bullet point number 3 |
Descriptive text for bullet 3 uses "HTTPStetusError" instead of "HTTPStatusError" |
Rolf | Aug 28, 2022 |
Page 786 3rd paragraph |
``` |
Vitaliy Yelnik | Aug 28, 2023 | |
Printed | Page 796 Code block, inside "supervisor" function |
The point where the error is initialised (indicated by point 6) is placed just outside the following for loop: |
Barend Linders | Jul 10, 2022 |
Page 820 First tip/suggestion box (green squirrel) |
If I'm reading it correctly, the text implies that the only difference between using `await` in a list comprehension (e.g. `[await fun() for fun in funcs]`) and using `asyncio.gather` is error handling. |
Rusheb Shah | Aug 03, 2023 | |
Page 855 next to last paragraph |
Chapter 23 will include a through explanation about overriding versus nonoverriding descriptors. -> a thorough explanation |
Anonymous | Jan 05, 2023 | |
Page 867 Example 22-29 |
Note #2 of the Example 22-29 says "Using vars to inspect the nutmeg instance". The code example itself doesn't use vars, it reads from the __dict__ property. |
Roman | Sep 04, 2023 | |
Page 890 Example 23-5 |
Note #3 of the Example 23-5 says "validate is an abstract method; this is the template method.", whereas earlier it was said "In Example 23-5, Validated.__set__ is the template method and self.validate is the abstract operation.". |
Roman | Sep 05, 2023 | |
Page 932 Figure 24-2 |
str, object, and LineItem are instances type -> instances of type |
Anonymous | Jan 18, 2023 | |
Page 948 last paragraph |
If that Persistent metaclass is -> PersistentMeta metaclass |
Anonymous | Jan 18, 2023 | |
Page 949 Footnote 16 |
stay way from -> away |
Anonymous | Jan 18, 2023 | |
Page 954 2nd and 3rd paragraphs under Further Reading |
There are two occurrences of "the The Python Standard Library". Did you actually mean it that way? |
Anonymous | Jan 18, 2023 | |
Page 960 Further Reading |
what it its to be “Pythonic” -> what it is |
Anonymous | Jan 18, 2023 |