Changelog
[0.5.1] - 2025-07-08
Second print edition: ISBN 979-8-9887092-1-3
Strategies for dealing with long lines and PEP 8
New appendices: Code smells for beginners, The call stack, The joy of Unicode, and An introduction to databases with SQLite
[0.5.0] - 2025-06-29
Expanded treatment of functions and scope, with coverage of free variables and Python’s LEGB resolution strategy
Coverage of
UnboundLocalError
andUnicodeDecodeError
exceptionsCoverage of sequence method
.count()
Coverage of using the keyword
is
to test for identityCoverage of list method
.extend()
Coverage of
random
module functions.gauss()
and.sample()
andmath
module functions.exp()
,.log()
,.log2()
,.log10()
,.floor()
,.ceil()
,.degrees()
and.radians()
Expanded treatment of structured data including named tuples and the
json
moduleAdditional exercises and comprehension checks
[0.4.0] - 2024-06-10
Coverage of sets
Use and abuse of the
global
keywordCoverage of Python’s built-in
sorted()
Coverage of string methods
.replace()
,.join()
, and.split()
[0.3.4] - 2024-06-01
- Minor edits and fixed typos
[0.3.3] - 2024-06-03
- Minor edits and fixed typos
[0.3.1] - 2024-06-03
More accurate language regarding constructors
More accurate language regarding expressions and statements
Add section explaining that CSV reader objects can only be iterated once
[0.3.0] - 2024-05-31
Expand section on graphs to introduce connected and disconnected graphs; update exercise 2
Move section on flow charts to an appendix
Rewrite Appendix D: File systems
Fix missing commas in (Whitman) poem fragment (reported by student LSM 2024-03-22)
Fix inconsistent data in chapter 13 (reported by student GD, 2024-03-17)
Fix typos in first exercise for chapter 09 (reported by students JF and MJ, 2024-02-05)
“suppy” should be “supply” (reported by student DM, 2024-01-22)
[0.2.0] - 2023-12-27
Replaced i.e. and e.g. with English equivalents (2023-12-27)
“immutable” should be “mutable” in discussion of hashability (reported by student RS, 2023-11-16)
Fixed bad case
['fargo']
should be['Fargo']
(reported by student TP, 2023-11-13)Fixed mismatched string delimiters in
dict
key (reported by student AM(2), 2023-11-11)Dictionary definition had comma between key and value (reported by student DW, 2023-11-06)
incorrect number of keys reported in example of
dict
(reported by student AM(1), 2023-11-05)“third percentile” should read ““third quartile” (reported by student LW, 2023-11-01)
[0.1.9b] - 2023-10-30
Fix broken f-string:
:.4f"}
should be:.4f}"
(reported by student DL, 2023-10-30)Fix
stevp
should bestdevp
in Chapter 14, section 14.1 (reported by student SC, 2023-10-30)Missing radical on formula for std. dev. in Chapter 14 (reported by student GS, 2023-10-30)
plt.plt()
should beplt.plot()
in Chapter 14 (reported by student CM, 2023-10-29)Remove unnecessary call to
print
in Chapter 14:print(statistics.mean(data))
(reported by Murat Gungor, 2023-10-28)Fix closing bracket and closing parenthesis in wrong order; Chapter 12, exercise 01 (reported by student JL, 2023-10-09)
[0.1.8b] - 2023-10-06
Fix “pancakes” instead of “waffles” in example in Chapter 10, section 10.12 (reported by student AG, 2023-09-25)
Fix “permanent members” (missing “s”) in Chapter 10, section 10.11 (reported by student MV, 2023-09-26)
Fix minor style issue “tasks” in Chapter 11, section 11.5 (reported by student CM, 2023-09-30)
Fix missing trailing underscore in variable name sum_ in Chapter 11, section 11.8 (reported by student SC, 2023-10-01)
Fix example “Netflix” in Chapter 11, section 11.14 (reported by student TP, 2023-10-02)
Add missing closing parenthesis in code example in Chapter 11, section 11.2 (reported by student MS, 2023-10-03)
Fix upper limit on summation; should be N-1 not 1-N, in Chapter 11, section 11.8 (reported by student AS, 2023-10-03)
Add missing closing parenthesis in code example in Chapter 11, section 11.6 (reported by student JD, 2023-10-03)
Add footnote justifying claim that \text{gcd}(a, b) = \text{gcd}(b, r).
[0.1.7b] - 2023-09-05
Fix typo in Chapter 4, section 4.6. 𝑏^{𝑚+𝑛} = 𝑏^𝑚 \times 𝑏^𝑛, not + (reported by student DT, 2023-09-05)
Fix confusion in Chapter 4, section 4.4. Remove end of one sentence and merge with following sentence, so that we eliminate incorrect statement a \div b = q + r (reported by student DT, 2023-09-05)
[0.1.6b] - 2023-08-17
- Fix typo in Chapter 1, section “Typographic conventions used in this book”. “… three arguments must be supplied—the first for the start value, the second for the stop value, and the last for the stride.” (reported by Murat Güngör, 2023-08-17)
[0.1.5b] - 2023-08-01
- First print edition. ISBN: 979-8-9887092-0-6