This page provides any changes that will be made to later copies of Python Basics thanks to feedback from readers.
Errata pages are a particular feature of Programming books because books are written by humans who despite their best efforts, make mistakes. The best test for an app is when programs are tested by many people, which often happens when published. Because good programmers aim for perfection, when a mistake is found they publish
those errors no matter how small. When buying a new book on programming it is always a good idea to look for an errata page and make necessary amendments in pencil before reading it.
On page 9 there is a section explaining how different programming languages have different strengths and uses. Unfortunately HTML was given as an example which is not really a programming language as it has no facility for writing IFs, Loops, Functions, etc.
Future editions will have this change:
page 9, Replace the first bullet point with:
- Fortran is excellent at high precision maths calculations.
While writing Python: Programming Art I realised that I had passed self as an argument to the functions in the EtchASketch® apps in Chapter 5 of Python Basics. These all work perfectly and self is beyond the scope of this book, however this argument should have been event because the functions are all called by a keyboard event.
This will result in the following changes in future editions:
page 63, Replace the whole self section including title with:
Title: "self" becomes "event"
New text below title replaces old text: "The event argument contains information being passed to the function about which key was pressed. If we did not include event as an argument, we would get an error complaining that we passed 1 argument to p1_move_N() when 0 were expected.
page 60, Code Box 5.2 - replace def p1_move_N(self): with def p1_move_N(event):
page 62, last line - replace p1_move_N(self) with p1_move_N(event)
page 68 & 69, Code Box 5.4 - replace five instances of self with event. Each one comes in brackets after a line starting with def.
page 70, 7th bullet point - replace erase_all(self) with erase_all(event)
page 71 - replace p1_move_N(self) with p1_move_N(event)