The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Version |
Location |
Description |
Submitted By |
Date submitted |
Date corrected |
|
Page Ch. 4 'F-strings have proven to be hugely popular'
Code snippet at Test Drive |
The code snippet already shows the final f-string version of the original 'round' method (for average) without explanation of the particular formatting option. The error (for Lizzie) described and solved later in the chapter won't occur when adapting the code according to the snippet.
Note from the Author or Editor: Fixed during Tech Review.
|
Anonymous |
May 30, 2023 |
|
|
Page Ch. 5 'Your code’s beginning to take shape, but…'
coach cartoon |
Currently reads:
"... did your actually mention a planet"
Should read:
"... did you actually mention a planet"
Note from the Author or Editor: Confirmed for Early Release material. Taken out of the printed book after Tech Review.
|
Anonymous |
May 30, 2023 |
|
|
Page Chapter 12 "List Comprehensions: Database Integrations"
The section titled "One query down, three to go" |
The bug is planted earlier in the chapter, but it first manifests in the "with" construct at the end of the section titled "One query down, three to go". The problem occurs if the reader reads chapters 11 and 12 on the same day, in which case the date of the two datasets is the same, and therefore the various queries in "queries.py" can't distinguish between the two datasets.
Note from the Author or Editor: This is an issue with the Early Release material online, which has been addressed in the final printed book.
|
Itai Berli |
Aug 12, 2023 |
|
|
Page Chapter 13 "Deployment Revisited: The Finishing Touches"
The first line of code in the section "Reusing your tables, 1 of 2" |
I am unable to run "sqlite3" from the Windows terminal. The command is not recognized. I performed an exhaustive search of "sqlite.exe" and "sqlite3.exe" throughout drive C to no avail: no files by that name were found.
Note from the Author or Editor: I am told Windows users need to install "sqlite-tools-win32-x86" for the sqlite3 commands to work. This has been fixed/noted in the printed book.
|
Itai Berli |
Aug 13, 2023 |
|
|
Page ch 00, page 3
8th para (4th 'response") |
I’m taking about…
should be: I'm talking about…
Note from the Author or Editor: Change "taking" to "talking" near start paragraph eight, left-hand column of this page.
|
Jørgen W. Lang |
Sep 20, 2023 |
|
|
Page xxxix
Paragraph which starts "At work..." |
Last sentence of this paragraph should start with "It is always a pleasure... " (the "is" is missing from the current sentence).
|
Paul Barry |
Sep 27, 2023 |
|
|
Page xxxi
Second last para, second sentence |
Extra "t" at start of sentence. Please remove.
Note from the Author or Editor: (Typo by me on left - sigh, sorry). Should read LAST para, second sentence: Extra "t" at start of sentence. Please remove.
|
Paul Barry (from Lairo on Github) |
Oct 23, 2023 |
|
|
Page Chapter 5. Formatted String Literals: Make Charts From Data
The code snippet after the paragraph that starts with "With just a few minor tweaks" |
The following line of code is missing in order to make this statement true: "can be combined into a single code cell"
Add the following just after the import lines:
`fn = "Darius-13-100m-Fly.txt"`
Note from the Author or Editor: Page 206 - in order for the code at the top of this page to be completely self-contained, this line needs to be inserted after the two "insert" statements:
fn = "Darius-13-100m-Fly.txt"
Note: this line of code last appeared near the top of page 199.
|
Mark Gerrior |
Apr 16, 2024 |
|
|
Page Chapter 8
"Go ahead and confirm that your cloud-hosted webapp is running" |
FYI: The forums are no longer at the URL list here: python.itcarlow.ie
When I attempt `showbarchart` on pythonanywhere I get "Internal Server Error". Is there a reason `app.run(debug=True)` doesn't work in this context? Also, I did revert my code (per the last errata I submitted) but it doesn't have an effect.
Note from the Author or Editor: The support forums were killed off by O'Reilly many moons ago. The book's GitHUB pages (search for "headfirstpython" on GitHUB) have a discussion feature which I interact with as needed... this can be a great way to "chat" outside of this errata mechanism.
app.run(debug=True) has no effect on PythonAnywhere as they control when app.py is executed, not you. On PythonAnywhere's Web Tab you'll see links to log files which provide information on what went wrong (especially the error.log file). Read from the bottom-up to see the most recent activity.
If you've adjusted your paths in your local code to include the "webapp" prefix, the code will not run on PythonAnywhere until the prefix is removed. See my response to an earlier errata submission.
|
Mark Gerrior |
Apr 24, 2024 |
|
|
Page Chapter 6
p 307 (save_to) |
I encountered the same problem as Mark Gerrior.
I found that I needed to add 'webapp/' to the lines of code where the swimmer's file was opened, swimclub.py line 15, and also where the save_to path was constructed, line 67. Otherwise, the file open/create attempts were to the "Learning" folder, not the "webapp" folder.
Line 15: with open("webapp/" + FOLDER + filename) as file:
Line 67: save_to = f"webapp/{location}{fn.removesuffix('.txt')}.html"
This may break other places this is used, but was necessary to get the code to run on page 311. There is likely a better way to fix this.
Note from the Author or Editor: The errors reported here are due to the fact that the reader is trying to run their app.py from a folder other than "webapp". Near the top of page 261, the 4th paragraph states: "Within VS Code, use File, then Open Folder… to select the just-created webapp folder as your current working directory... ". If this step is skipped, VS Code will likely use the "Learning" folder as it's default which will result in the "file not found" errors being reported due to the fact that the code assumes file and folder locations are relative to the current working directory, which needs to be "webapp".
The code in the book works without issue when app.py is executed from within the "webapp" folder.
|
Gary Stebbins |
Apr 30, 2024 |
|
|
Page Chapter 7. Building a Webapp: Web Development
Install Flask from PyPI |
Where is the `pip install flask` command being run? In the Jupyter notebook or in the terminal? Does it matter? Where is flask being installed? The directory? The project? My current version of Python? The default version of Python?
Note from the Author or Editor: Suggesting this conversation is moved to the discussions forum on GitHUB.
|
Mark Gerrior |
May 01, 2024 |
|
|
Page p173
bottom of left column |
"expect" should say "except"
Note from the Author or Editor: Change "expect" to "except" on last bullet point, left-hand-side.
|
Tim Boyle |
Sep 06, 2024 |
|
|
Page Chapter 5 Cubicle Conversation
Third line in conversation |
Current text says:
Mara: I like that idea, as all the tools we’re using a free. What’s not to like?
Correct text should say:
Mara: I like that idea, as all the tools we’re using are free. What’s not to like?
Note from the Author or Editor: Not an issue in the published book as this CC has been removed.
|
Jonathon Fryman |
May 24, 2023 |
|
|
Page 4th Chapter, Section: You have numbers now, but are they usable?
4th paragprah, link to the sentence: https://learning.oreilly.com/library/view/head-first-python/9781492051282/ch04.html#:-:text=You%E2%80%99ll%20find%20the,book%E2%80%99s%20download%20material. |
It is written:
"You’ll find the module and notebook included with this book’s download material."
However, there is no place to download the book's material. So not able to do the exercises that mentioned in the chapter 4.
Note from the Author or Editor: The published book (due end August 2023) has been updated with all download materials available via GitHUB. Please search GitHUB for the "headfirstpython" account, then access the "third" repository.
https://github.com/headfirstpython/third
|
Latif |
Jul 21, 2023 |
|
|
Page 6. Building A Webapp: Web Development
The Flask MVP |
Hello,
I saw this book on oreilly.com.
[False]
if __name__ == "_main_":
app.run()
[True]
if __name__ == "__main__":
app.run()
I use PC to programming, if use "_main_", the code "app.run()" will not run.
>>> print(__name__)
__main__
Note from the Author or Editor: Fixed during Tech Review.
|
HAORAN WANG |
May 18, 2023 |
|
|
Page 6. Building A Webapp: Web Development
Figure 6-48. |
Hello,
I read this book on oreilly.com.
Figure 6-48.
[false]
<title>Welcome to the Swinclub system</title>
[true]
<title>Welcome to the Swimclub system</title>
swin-->swim club
Note from the Author or Editor: Fixed during Tech Review.
|
HAORAN WANG |
May 18, 2023 |
|
|
Page 6. Building A Webapp: Web Development
The text below Figure 6-23. |
Hello,
I read this book on oreilly.com.
Go ahead and add your new function to your app.py file (above the dunder name if statement). Your new code should match what’s shown here:
[false]
@app. get ("/ swimmers")
[true]
@app.get ("/swimmers")
"/ swimmers" --> "/swimmers" It's different as a path.
Note from the Author or Editor: Not an issue in the final (printed) book. A conversion error during Early Release.
|
HAORAN WANG |
May 18, 2023 |
|
|
Page 8. Working With HTML: Web Scraping
Grab the raw HTML page from Wikipedia |
Hello,
I read this book on oreilly.com.
Figure 6-48.
[false]
URL = "h://en.wikiped.o
[true]
URL = "h://en.wikipedia.o
wikiped-->wikipedia
Note from the Author or Editor: Caused by a conversion error when producing the Early Release material. Fixed in the printed book.
|
HAORAN WANG |
May 19, 2023 |
|
|
Page 8. Working With HTML: Web Scraping
That nested loop did the trick! |
Hello,
I read this book on oreilly.com.
The code above "That nested loop did the trick!"
The wiki website is changed.
[False]
RECORDS = (0, 1, 3, 4)
[True]
RECORDS = (0, 2, 4, 5)
Note from the Author or Editor: Fixed during Tech Review.
|
HAORAN WANG |
May 19, 2023 |
|
|
Page 15
Last sentence |
In the “Why python” chapter, the section “That’s python’s default variable” the last sentence “…but it’s value…” “it’s” should be “its”. The former is a contraction of “it is” and the correct form is the possessive. Print version page 15.
Note from the Author or Editor: Change "it's" to "its" in second line from the bottom of the page.
|
Lorin Rivers |
Sep 14, 2024 |
|
|
Page 16
next to last paragraph on page |
In second line of this paragraph, "funciton" should be "function".
Note from the Author or Editor: Change "funciton" to "function" near bottom of page.
|
Gary Stebbins |
Apr 30, 2024 |
|
|
Page 31 + 32
module list, 8th entry, description column |
Original: popular structured text format, sometimes call a “document”
Change to: popular structured text format, sometimes called a “document”
Note from the Author or Editor: Change "call" to "called" near middle of both pages.
|
Jørgen W. Lang |
Sep 25, 2023 |
|
|
Page 52
last paragraph |
Original: the print dir combo manbo…
Suggested fix: the print dir combo mambo…
Note from the Author or Editor: Change "manbo" to "mambo" on this page.
|
Jørgen Lang |
Sep 26, 2023 |
|
|
Page 52
last para, last sentence |
Original: It’s often useful to hink of the following one-liner as asking…
Suggested fix: It’s often useful to *t*hink of the following one-liner as asking…
Note from the Author or Editor: Chance "hink" to "think".
|
Jørgen Lang |
Sep 26, 2023 |
|
|
Page 58
1st annotation |
Original: We’re removed the dunders…
Fix: We’ve removed the dunders
Note from the Author or Editor: "We're" should be "We've"
|
Jørgen Lang |
Sep 28, 2023 |
|
|
Page 60
2nd last annotation on right side |
Original: The default seperator is replaced…
Suggested fix: The default separator is replaced…
|
Jørgen Lang |
Oct 01, 2023 |
|
|
Page 79
very bottom |
Issue: Arrow text reads: "Answers om page 80"
Suggested fix: "Answers on page 80"
Note from the Author or Editor: Change "om" to "on" (near bottom right of page).
|
Jørgen W. Lang |
Oct 04, 2023 |
|
|
Page 95
top box, annotation |
Original: …the “print dir” combo manbo…
Fix: …the “print dir” combo mambo…
Note from the Author or Editor: Change annotation to read "mambo".
|
Jørgen W. Lang |
Oct 06, 2023 |
|
|
Page 97
list of subtasks |
Issue: List of subtasks lacks trailing periods
Suggested fix: Add period for consistency with previous subtask lists (e.g. p82 and p92)
|
Jørgen W. Lang |
Oct 06, 2023 |
|
|
Page 97 + 107
numbered/lettered lists of subtasks |
Issue: Missing periods after subtasks
Suggested fix: Add periods at end of each subtask for consistency.
|
Jørgen W. Lang |
Oct 09, 2023 |
|
|
Page 101
last para |
Original: You first saw for in the opening chatper…
Fix: You first saw for in the opening chapter…
Note from the Author or Editor: Last paragraph: change "chatper" to "chapter".
|
Jørgen W. Lang |
Oct 07, 2023 |
|
|
Page 105
1st numbered annotation |
Original: 1. You need to initialize a counter, which we’ve called “i” is this code.
Fix: Change "is" to "in": 1. You need to initialize a counter, which we’ve called “i” in this code.
Note from the Author or Editor: Annotation #1: change "is this" to "in this".
|
Jørgen W. Lang |
Oct 07, 2023 |
|
|
Page 112
first annotation |
Original: We created a new, empty list called “converts” by assigning an empty list to it.
Issue: Creating a list by assigning a list to it.
Suggested Fix: We created a variable called “converts” and assigned a new empty list to it.
Note from the Author or Editor: Let's apply the suggested fix, which is a better/clearer description of what's going on here.
|
Jørgen W. Lang |
Oct 07, 2023 |
|
|
Page 113
Bottom right (the annotation) |
The arrow from the annotation is missing. It should point to the list of numbers from the word "Here's" in the annotation.
|
Paul Barry |
Sep 27, 2023 |
|
|
Page 124
bullet points, left column, 6th entry |
*really minuscule* ;)
Issue: Leading whitespace before entry: ' The rest of the file object methods' […]
Fix: Change to 'The rest of the file object methods' […]
Note from the Author or Editor: Remove extra whitespace as described. Sixth bullet point from the bottom on the LHS of page 124.
|
Jørgen W. Lang |
Oct 09, 2023 |
|
|
Page 128
11th last line of dialog (Alex) |
Original:
Alex: So we have a ways to go yet…
Suggested fix: remove plural 's' on 'a ways' so text reads:
Alex: So we have a way to go yet…
Note from the Author or Editor: I'm suggesting we leave this as is, as using "ways" in this way is perfectly OK this side of the Atlantic (which, I'll admit, might be an Irish thing). But... feel free to adjust if deemed necessary.
|
Jørgen W. Lang |
Oct 23, 2023 |
|
|
Page 148
2nd para, last sentence |
Original: As you can
imagine, the PSL has you covered when it
comes to doing this sort of thing..
Fix: Remove one period at end of line.
Note from the Author or Editor: Remove extra period from end of middle paragraph.
|
Jørgen W. Lang |
Oct 24, 2023 |
|
|
Page 170
1st para 2nd sentence |
Original: The easiest way to do this is to clear all of your notebook’s cells […]
Issue: This sounds like the contents of the cells needs to be cleared out instead of the outputs.
Suggested fix: The easiest way to do this is to clear all outputs of your notebook’s cells […]
Note from the Author or Editor: Adjust start of the second sentence to read "The easiest way to do this is to clear all of the outputs from your notebook’s cells... "
|
Jørgen W. Lang |
Oct 27, 2023 |
|
|
Page 181
8th last para, 2nd sentence |
Original: When you combine it with SVG, you can create visuals is text, too.
Suggested fix: When you combine it with SVG, you can create visuals [as|in|from] text, too.
Note from the Author or Editor: Replace "visuals is text, too" with "visuals from text, too".
|
Jørgen Lang |
Oct 31, 2023 |
|
|
Page 233
First code-block |
The code-block shows a check to ensure that the right data has been added. The text above states: "The len BIF confirms the swimmers list-of-tuples contains 60 tuples:"
However the code uses the wrong variable. It is:
len(swim_files)
and it should be
len(swimmers)
Both contain 60 elements, so result is the same. However, swim_files contains filenames, while swimmers contains tuples of (name, filename)
Note from the Author or Editor: The code snippet at the top of the page should read "len(swimmers)". Editor: contact me for updated screen-grab when fixing this errata entry.
|
Tom Quast |
Sep 15, 2024 |
|
|
Page 252
1st heading |
Original: This is really stating to come together
Suggested fix: This is really starting to come together
Note from the Author or Editor: Change "stating" to "starting" in page heading.
|
Jørgen Lang |
Nov 08, 2023 |
|
|
Page 254
6th left bullet |
Original: List sets, dictionaries surround data with curly braces.
Question: Did you mean "Sets and dictionaries" since lists use square brackets?
Note from the Author or Editor: Change the word "Lists" to be "Like" at start of 6th bullet item.
|
Jørgen Lang |
Nov 08, 2023 |
|
|
Page 254
6th bullet, 2nd sentence |
Original: "Unlike sets (which contain a collection of unque values) […]"
Fix: "Unlike sets (which contain a collection of unique values) […]"
Note from the Author or Editor: Change "unque" to "unique" in 6th bullet item.
|
Jørgen Lang |
Nov 08, 2023 |
|
|
Page 259
3rd last sentence |
Original: Along the way, you’ll learn […] get and set HTTP methods […].
Question 1: Shouldn't this be GET and POST (uppercase debatable)?
Question 2: Are you referring to the actual HTTP request methods or Python methods to make HTTP requests?
Note from the Author or Editor: Question 1: Yes, replace the word "set" with "post".
Question 2: I might be convinced to drop "HTTP" from that description, but am not too worried about it, so am inclined to leave it as is.
|
Jørgen Lang |
Nov 23, 2023 |
|
|
Page 277
Test Drive |
Asking for "a friend", here (I actually know):
Why do we have to activate the Debugging mode in Flask and then select "Run without Debugging" from the menu? This seems to contradict itself.
(Just to bring this possible question to your attention…)
Note from the Author or Editor: This is a good question. The debugging mode built into Flask is independent of the tool (or IDE) you use to run your Python program, and it provides "nicer" error messages when things go wrong with your webapp's code. The debugger built into VSCode can be used to debug *any* Python program, not just webapps, and running the VSCode debugger in addition to Flask's debug mode is likely overkill.
|
Jørgen Lang |
Nov 10, 2023 |
|
|
Page 292
1st code annotation, right side |
Original: When Jinja2 see this markup […]
Fix: When Jinja2 sees this markup […]
Note from the Author or Editor: Change "see" to "sees" in top-right annotation.
|
Jørgen Lang |
Nov 10, 2023 |
|
|
Page 303,304,552,553,554
function name |
On pages 303,304 a function "list_swimmer_files" is defined.
On pages 552,553,554 the function is called "list_swimmer_files" (plural 's' in 'swimmers'). Which one is correct? Should the names be harmonised?
Note from the Author or Editor: The correct name for the function on all of these referred to pages should be "display_swimmers_files". The book's code, available for download from the GitHUB page uses the correct name (which, I'll admit, doesn't help those readers working through the actual book). This edit needs to be applied across all of the book's digital (and paper) formats.
|
Jørgen Lang |
Apr 10, 2024 |
|
|
Page 340
bottom code cell, line 16 |
Isssue: After following the instructions to edit line 16 of the WSGI configuration a little warning triangle is shown left of the line number. If I hover over it, a message is shown, saying, "'app.app as application' imported but unused.".
The deployed app seems to run fine, though. I don't think it's a big problem but some readers might be irritated.
Note from the Author or Editor: Add a small annotation to instruct the reader not to worry about the warning triangle (which is a PythonAnywhere thing, but nothing to get too excited about).
|
Jørgen Lang |
Nov 28, 2023 |
|
|
Page 348
clue for 3 down |
Original: "In Jinja templates, the Python code […]"
Fix: Add "2".
Note from the Author or Editor: Page 347 and 348, crossword clue "3 down", replace Jinja with Jinja2.
|
Jørgen Lang |
Nov 29, 2023 |
|
|
Page 351
5th paragraph |
next to last line of Mara's paragraph, "an idea of how that are progressing"
"that" probably should be "they"
Note from the Author or Editor: Change "that" to "they" Mara's second paragraph from top of page.
|
Gary Stebbins |
May 14, 2024 |
|
|
Page 354
there are no dumb questions - question 3 |
Question 3: The answer states "Rarely. The code used with the Coach's webapp happily runs on Python 3.6 and above (due to its use of f-stings) - f-stings should be f-strings.
Note from the Author or Editor: This errata refers to page 345... and yes, it should read "f-string". (Second line of answer to question at top-right of page).
|
Laura Phillips |
Sep 04, 2024 |
|
|
Page 359
3rd code cell from top |
Some readers on macOS (I used 14.2 Sonoma) might encounter an "SSLCertVerificationError".
To prevent this, open the /Applications/Python [your.version]/ folder.
There you will find "Install Certificates.command".
Double click it and a command line will open to automatically install the certificates.
After that, retry in your notebook to fetch the page.
Note from the Author or Editor: I cannot replicate this issue on my Mac (running Sonoma 14.1.2). I suspect this is a (very) platform specific issue. On my Mac, which runs Homebrew, this is not an issue. It's also not an issue (as far as I can tell) on Windows nor Linux. It also didn't present on macOS Monterey nor Ventura (which were used during the writing of the book). Of course, that's not to say this isn't an issue this reader has experienced...
|
Jørgen Lang |
Dec 02, 2023 |
|
|
Page 389
Intro, 1st sentence (2nd thought!) |
Original: »Perhaps you have a isn’t arranged in the way it needs to be.list of lists, but you really need a dictionary of dictionaries.«
It actually looks very much as if part of the intro heading accidentally got copied into this sentence. If you remove "isn’t arranged in the way it needs to be." it all makes sense again and the 1st sentence becomes:
»Perhaps you have a list of lists, but you really need a dictionary of dictionaries.«
Note from the Author or Editor: The text on this page should mirror that from the Table of Contents, page xvii.
Adjust the opening text to match page xvii.
|
Jørgen Lang |
Dec 06, 2023 |
|
|
Page 409
1st para, 2nd sentence |
Original: "To get started, add to your list of imports …"
Issue: Possibly missing info about what is being added - but also works as is since it is clarified in the annotations below.
Suggested change: "To get started, add »json« to your list of imports …"
Note from the Author or Editor: Add the word "json" as per suggested change.
|
Jørgen Lang |
Dec 08, 2023 |
|
|
Page 413
last paragraph (Illustration text) |
"This is an near perfect match..."
"an" should be "a"
Note from the Author or Editor: Change "an" to "a" in annotation text at start of bottom-left of this page.
|
Gary Stebbins |
May 15, 2024 |
|
|
Page 419
last para |
Text: "Just be aware that your utility won’t run on your computer as the folder referenced by WHERE likely doesn’t exist (so if running locally, adjust the value of where as needed)."
Q: Wouldn't this be a good use case for the "__name__ == __main__" idiom?
Note from the Author or Editor: That's an interesting suggestion (which would work). However, in later material (especially page 587, chapter 12) I present a solution to this problem when discussing the use of different database credentials on different platforms... which could also be used to solve the issue you are referring to (although - to be honest - it becomes a "non-issue" once the reader starts using a "real" database).
|
Jørgen Lang |
Dec 09, 2023 |
|
|
Page 430
Headline |
From the table contents 9.1/2 Tabular Data, page xviii.
"Don’t use "pandas", use "pd" instead"
Doesn't exist it is instead, page 430.
"Start by conforming to convention"
Note from the Author or Editor: The TOC on page xviii needs to be regenerated to pick up the correct page title from page 430.
|
Johan Göransson |
Jul 29, 2024 |
|
|
Page 431
top right code annotation, last sentence |
Original: "When “head” is used, it shows the first five rows from the dataframe."
Suggestion: Add info that 5 is the default value, but other numbers can be given, e.g. table.head(3).
Note from the Author or Editor: Change the last line of the "head" annotation to read:
When "head" is used, it defaults to showing the first five rows from the dataframe, but other amounts can be specified, for example: ".head(10)" or ".head(3)".
|
Jørgen Lang |
Dec 11, 2023 |
|
|
Page 437
lower annotation text |
2/3 down the paragraph
"is associated with a inner,"
"a" should be "an"
|
Gary Stebbins |
May 16, 2024 |
|
|
Page 448
2nd column, 1st bullet point |
Original: "The head function, lets you view the first five rows of
data in any dataframe."
Suggestion: Add a little annotation regarding default behaviour of head().
Note from the Author or Editor: Change this bullet point to read: "The head function lets you view any number of rows of data from the start of your dataframe (and defaults to the first five)."
|
Jørgen Lang |
Dec 12, 2023 |
|
|
Page 448
Bullet Points, left column, 4th bullet |
4th line, "assumming" should be "assuming"
|
Gary Stebbins |
May 16, 2024 |
|
|
Page 485
test drive, 1st para below code cell |
Text: "When we Ctrl+Click on the code cell, which reruns and displays all the data, we see this:"
Question: Did you maybe mean "When we Ctrl+Enter…"?
Note from the Author or Editor: Change "Ctrl-Click" to read "Ctrl-Enter" (in the Test Drive text area).
|
Jørgen Lang |
Dec 18, 2023 |
|
Printed, PDF, ePub, Mobi, O'Reilly learning platform |
Page 485
In the Test Drive, second sentence |
In the Test Drive, the second line of text (just before the output) should read:
"When we press Ctrl+Enter to rerun the code cell shown at the bottom of page 481 - displaying all the data - we see this:"
(Thanks for Bill on GitHUB for alerting me to this issue).
|
Paul Barry |
Jan 22, 2024 |
|
|
Page 514
last paragraph, description, last indented line |
Original: "[tab] filtering condition holds.."
Issue: double period
Fix: remove on and reuse
Note from the Author or Editor: Remove extra period at the end of the indented text at bottom of page.
|
Jørgen Lang |
Jan 02, 2024 |
|
|
Page 562
bottom |
Original: "This is the only new line of code […]"
Issue: This seems to contradict the statement in the middle annotation ("two new functions") by stating that it is "the only new line of code".
It's a little unclear what is meant here. There might be an annotation missing that introduces the second "new" function or the bottom annotation might need an addition to read like, "This is the only new line of code in the second function."
Note from the Author or Editor: Add "in this second function" before the comma on the first line of the last annotation on this page.
|
Jørgen Lang |
Jan 06, 2024 |
|
|
Page 564
2nd paragraph, last sentence |
Original: "Here is our code. How does your compare?"
Fix: Change to: "Here is our code. How does yours compare?"
Note from the Author or Editor: Change "your" to "yours" at the end of paragraph 2, middle of page.
|
Jørgen Lang |
Jan 06, 2024 |
|
|
Page 569, 570
xword, 4 down |
Original: "The fetchall database method (when is returns data) always returns a list of these."
Fix: "The fetchall database method (when it returns data) always returns a list of these."
Note from the Author or Editor: Change "is" to "it" for 4 down clue.
|
Jørgen Lang |
Jan 06, 2024 |
|
|
Page 569, 570
xword, 6 down |
Problem: The term "generator" was not introduced up to this point in the book. First (and only) mention is on page 609 in connection with decorators and context managers (sic!).
Note from the Author or Editor: On page 568, change the first bullet point at the top of the list on the right hand side to read: "There's no such thing as a tuple comprehension. If you try to create one, you'll end up with a Python generator (but don't even go there)."
|
Jørgen Lang |
Jan 06, 2024 |
|
|
Page 573
4th paragraph (Mara) |
Issue: Multi-user capabilities of SQLite.
Problem: back on page 453 (last three paragraphs), multi-user capabilities were the selling point for SQLite:
Sam: Yes. Databases are designed to manage your
application’s data, as well as share it efficiently and safely
among multiple users.
Mara: Is it easy to use a database with Python?
Sam: Yes. And, believe it or not, Python comes with the
world’s most popular SQL-based database technology already
built in. It’s called SQLite.
It does not break the overall storytelling but it might cause a little twist in continuity.
Note from the Author or Editor: Changes to Cubicle Conversation on page 453.
Third from last para (Sam): change "multiple users." to "multiple users (when supported)." at end of sentence.
Last para (Sam): change the word "technology" to "engine".
|
Jørgen Lang |
Jan 08, 2024 |
|
|
Page 575, 578, 586, 588
various |
"swimpasswd"
Issue: On pages 575, 578, 588 "swimmpasswd" is used as password for the MariaDB/MySQL user. On page 586 the top left annotation says, "Use the same password as for your local database, which is “swimpasswd” for us, but should be something different for you."
Instructions to choose another password should probably be on page 575. Otherwise the annotation may be confusing and instructions or pointers on how to change the pw are needed.
Note from the Author or Editor: Change the first annotation on page 586 to read: "You can, of course, use the same password for your cloud-based database as you used locally on your computer. If you decide to use something other than 'swimpasswd', be sure to adjust the code over the page to reference your chosen cloud password as entered here."
|
Jørgen Lang |
Jan 16, 2024 |
|
|
Page 578
1st heading |
Issue: Here the heading "Reusing your tables, 2 of 2" is formatted as "Heading1", while two pages before "Heading2" is used to format "Reusing your tables, 1 of 2".
Note from the Author or Editor: Changing the heading on page 576 to "Heading1" is possible, but will impact the TOC (as all Heading1s make an appearance there). Changing the heading on page 578 to a Heading2 goes a little against the Head First page layout standards. I'm going to cop-out here, and leave it up to the O'Reilly editors to decide which of these heading formatting options is changed (if any). ;-)
|
Jørgen Lang |
Jan 08, 2024 |
|
|
Page 592
Picture |
On the final "/swims" page on the webapp its prompting the user to "please select a chosen_date". By substituing "chosen_date" to "date" in the final app.py version you can make this prettier to "please select a date".
Love your book! Thanks a lot :)
Note from the Author or Editor: Yes, indeed, the messaging on the "Select a swim session" form could be better. Further proof that UI design is not my strong suit. Please adjust the messaging as required.
|
Jost Jens |
Oct 17, 2024 |
|
|
Page 602
2nd question |
Original: "The PSL contains a module called dataclass."
Issue: The module is actually called "dataclasses". The imported method is called "dataclass".
Note from the Author or Editor: Change the "dataclass" in mono (courier) font to read "dataclasses" under point #2.
|
Jørgen Lang |
Jan 10, 2024 |
|
Printed, PDF, ePub, Mobi, O'Reilly learning platform, Other Digital Version |
Page 604
First annotation at top-right of page. |
On the third line of this annotation, change "jus-created" to "just-created".
|
Paul Barry |
Oct 02, 2024 |
|
|
Page 2444
3rd paragraph |
Original: "And of course (your old friend) the print dir combo mambo reports the list of methods included with every dictionar"
Issue: Last two characters are missing ("y:").
Note from the Author or Editor: Add "y:" to the end of the line as indicated above. The actual page number is 244.
|
Jørgen Lang |
Nov 07, 2023 |
|