Appendix F: Index
Entries reference chapter sections (e.g., 7.3 means Chapter 7, section 7.3). Bold entries indicate the primary definition. A letter prefix points to an appendix (A.11 is Appendix A, section A.11). Page references are omitted as this is a digital textbook; use your reader's search function for precise location within a section.
A
- ABC (abstract base class), 15.6, 16.2, 16.6
- abstract data type (ADT), 20.6, 20.2, 20.4
- abstract method, 15.6, 16.6
- abstraction, 1.2, 3.10, 6.1, 6.9, 27.1
- accumulator pattern, 5.6, 7.6
- Agile methodology, 26.3, 26.4, 26.7
- algorithm, 1.2, 17.1, 17.4, 19.1
- algorithm analysis, 17.2, 17.3, 17.4, 19.9
- aliasing, 8.8, 8.3, 9.3, 14.3
andoperator, 4.5, 4.6, C.2- API (Application Programming Interface), 21.4, 21.5, 21.6, 21.7
append(), list method, 8.4, 8.8, 8.10append()vs.extend(), 8.4- argument, 6.3, 6.2, 6.10
*args, 6.3assertstatement, 13.3, 13.4, 13.6- assignment operator (
=), 3.1, 3.10 - augmented assignment (
+=,-=, etc.), 3.9, 5.6 - automation, 24.1, 24.6, 24.7, 26.9
B
- backlog (Agile), 26.3, 26.4
- base case (recursion), 18.1, 18.2, 18.8
- Beautiful Soup (bs4), 24.3, 24.4
- Big-O notation, 17.2, 17.3, 17.4, 19.9, C.3
- binary number system, C.1, 3.3
- binary search, 19.3, 17.3, 18.4, 19.9
booltype, 3.3, 3.7, 4.4- Boolean algebra, C.2, 4.5
- Boolean operators (
and,or,not), 4.5, 4.6, C.2 - boundary condition, 13.6
breakstatement, 5.7, 5.9- brute force algorithm, 17.5, 17.7
- bug, 1.1, 2.10, 5.9, 13.8
C
- Caesar cipher, 6 (exercises), 7 (exercises)
- call stack, 6.6, 11.3, 18.3, 18.8
chr(), 6 (exercises), 7 (exercises), A.11- CI/CD, 26.9
- class, 14.2, 14.3, 14.4, 14.5
- class attribute, 14.4, 14.9
clone(Git), 25.7- code coverage, 13.10
- code review, 26.6, 25.7, 26.9
- code smell, 16.8
- cohesion, 16.3
collectionsmodule, 9.10, 12.3, 20.4Counter, 9.10, 12.3defaultdict, 9.10, 12.3deque, 20.4, 20.5namedtuple, 8.7, 12.3
- comma-separated values, see CSV
- comment, 2.9, 2.11
commit(Git), 25.3, 25.4, 25.9- comparison operators (
==,!=,<,>,<=,>=), 3.6, 4.4 - compiler vs. interpreter, 2.1
- composition (OOP), 15.7, 15.9
- computational thinking, 1.2, 1.8, 27.1
- conditional, see
ifstatement - constructor (
__init__), 14.3, 15.4 - context manager (
withstatement), 10.3, 10.4, 11.6 continuestatement, 5.7, 5.9copy(), list method, 8.8copymodule, 8.8deepcopy(), 8.8
- coupling, 16.3, 15.7, 16.8
cron(task scheduling), 24.7- Crypts of Pythonia (running example), 1.5, 4.8, 7.5, 14.3, 15.1, 16.4, 18.10, 20.2
- CSS selector, 24.3
- CSV (comma-separated values), 10.7, 21.2, 21.8
csvmodule, 10.7, 21.2DictReader, 10.7, 21.2DictWriter, 10.7, 21.2
D
- data type, 3.3, 3.7
dataclass, 16.7, 16.8, 16.10datetimemodule, 12.3, 3.11- debugging, 13.8, 2.10, 5.9, 11.3
- binary search strategy, 13.8
- print debugging, 13.8
- rubber duck, 13.8
- using a debugger, 13.8
- decorator, 14.7, 15.6, 16.7, 18.6
@abstractmethod, 15.6@dataclass, 16.7@functools.cache, 18.6@property, 14.7@staticmethod, 14.9
- decomposition, 1.2, 1.8, 27.1
- deep copy, 8.8
- default parameter, 6.3, 6.10
defstatement, 6.2- De Morgan's laws, C.2
- dependency (package), 23.1, 23.4, 23.6, 23.7
deque, seecollections- design pattern, 16.4, 16.5, 16.6
- Factory, 16.6
- Observer, 16.5
- Strategy, 16.4
- dictionary, 9.1, 9.2, 9.3, 9.4, 9.6
- comprehension, 9.5
get(), 9.2, 9.4, 21.6items(), 9.4keys(), 9.4pop(), 9.3setdefault(), 10.7, A.5update(), 9.3values(), 9.4
- dictionary comprehension, 9.5
dir(), A.11- divide and conquer, 17.7, 19.7
- DNA pipeline (Dr. Patel, running example), 1.5, 7.5, 7.6, 9.4, 17.4, 18.7, 22.3
- docstring, 6.7, 6.2, 26.8
- Dr. Patel, Anika, see DNA pipeline
- dunder method, see special method
E
- EAFP (Easier to Ask Forgiveness than Permission), 11.8
- edge case, 13.6
- Elena Vasquez, see nonprofit report
elif, 4.4, 4.8else(on loops), 5.7- encapsulation, 14.7
- encoding (file), 10.2, 10.9
enumerate(), 8.5, 6.11- environment setup, B.1-B.7
- error handling, see exception handling
- escape character, 7.9, 22.3
- exception, 11.2, 11.5, 11.7, 11.9
AttributeError, 12.9, 14.6FileNotFoundError, 10.9, 11.5ImportError, 12.9IndexError, 7.2, 8.2, 11.5KeyError, 9.2, 11.5ModuleNotFoundError, 12.9NameError, 2.10, 6.5RecursionError, 18.8SyntaxError, 2.10, 4.9, 11.2TypeError, 3.7, 11.5ValueError, 3.7, 11.4, 11.7ZeroDivisionError, 11.4, 11.5
- exception handling (
try/except), 11.4, 11.5, 11.6, 11.8 - expression, 3.4, 3.6
extend(), list method, 8.4
F
- f-string, 3.8, 7.8, A.12
- Factory pattern, 16.6
False, 3.3, 4.4- Fibonacci sequence, 18.4, 18.6
- FIFO (First In, First Out), 20.4
- file I/O, 10.2-10.9
- append mode, 10.4
open(), 10.2- read mode, 10.2
read(), 10.2readline(), 10.2readlines(), 10.2- write mode, 10.2, 10.4
write(), 10.4writelines(), 10.4
filter(), A.11finallyclause, 11.6floattype, 3.3, 3.4, 3.7- floating-point precision, 3.3, 13.4
forloop, 5.2, 5.3, 8.5- fork (GitHub), 25.7
- frequency counting, 9.4, 7.6, 9.10
frozenset, 9.9- function, 6.1-6.10
- composition, 6.9
- definition (
def), 6.2 - docstring, 6.7
- passed as an argument (
key=), 8.11, 19.8
G
get(), dictionary method, 9.2, 9.4- Git, 25.1-25.9
git add, 25.3, 25.4git branch, 25.5git switch, 25.5git clone, 25.7git commit, 25.3, 25.4git diff, 25.3git init, 25.3git log, 25.3git merge, 25.6git pull, 25.7git push, 25.7git status, 25.3
.gitignore, 25.8- GitHub, 25.7, 26.6, 26.9
- global variable, 6.5, 6.8
- glossary, Appendix E
- Grade Calculator (running example), 1.5, 2.7, 3.4, 4.4, 5.6, 10.4, 12.4, 16.5
- graph (data structure), 20.8
- greedy algorithm, 17.6
H
- hardware, 1.1
has-arelationship, 15.7- hash, 9.9, 9.7, 20.8
- hash table, 20.8, 9.9
help(), 6.7, A.11- HTML, 24.2, 24.3
- HTTP, 21.4, 21.5
I
- IDE (Integrated Development Environment), 2.5, B.2
id(), 3.10, 8.8ifstatement, 4.2, 4.3, 4.4elif, 4.4else, 4.3- nested, 4.7
- immutable, 7.4, 8.7, 9.9
importstatement, 12.1, 12.2from...import, 12.2import...as, 12.2
- indentation, 2.10, 4.2
- index (list/string), 7.2, 8.2
IndexError, see exception- infinite loop, 5.4, 5.9, D.5
- inheritance, 15.1, 15.2, 15.3, 15.4
- multiple, 15.8
__init__method, 14.3, 15.4input(), 2.8, 3.7- input validation, 4.2, 4.10, 5.4, 7.7
- insertion sort, 19.6, 19.9
insert(), list method, 8.4- instance, 14.2, 14.4
- instance attribute, 14.4
inttype, 3.3, 3.7isinstance(), 15.2, 15.5, A.11is-arelationship, 15.1, 15.7- iterable, 5.3, 8.4
- iteration, 5.1-5.9
J
join(), string method, 7.5- JSON (JavaScript Object Notation), 10.8, 21.3
jsonmodule, 10.8, 21.3dump(), 10.8dumps(), 10.8, 21.3load(), 10.8loads(), 10.8, 21.3
K
- key (dictionary), 9.2, 9.3
- key function (for sorting), 19.8, 8.11
KeyError, see exception- keyword argument, 6.3
L
- lambda, 19.8, 8.11
- LBYL (Look Before You Leap), 11.8
len(), 3.5, 7.2, 8.2- LIFO (Last In, First Out), 20.2
- linear search, 19.1, 19.2
- linked list, 20.7
- list, 8.1-8.10
- comprehension, 8.6, 8.10
- methods, see
append(),extend(),insert(),pop(),remove(),sort(),copy() - nested, 8.9, 18.7
- slicing, 8.2, 7.3
- local variable, 6.5
- logic error, 11.2, 13.8, D.4
- loop, 5.1-5.9
elseclause, 5.7for, 5.2- infinite, 5.4, 5.9
- nested, 5.8, 17.4
while, 5.4
- loop variable, 5.2, 5.9
M
map(), A.11match/casestatement, 4.8mathmodule, 12.2, 12.3- memoization, 18.6
- merge (Git), 25.6
- merge conflict, 25.6
- merge sort, 19.7, 17.7, 19.9
- method, 7.5, 14.5
- method overriding, 15.3
- method resolution order (MRO), 15.8
- mock (testing), 13.9
- modular arithmetic (
%), 3.4, C.4 - module, 12.1-12.9
__name__, 12.5__main__, 12.5
- multiple inheritance, 15.8
- mutable, 8.3, 8.8, 9.9
- MVP (Minimum Viable Product), 26.3
N
__name__variable, 12.5NameError, see exception- namespace, 12.1, 12.2
- nested conditional, 4.7
- nested list, 8.9, 18.7
None, 6.4, 3.7, 6.10- nonprofit report (Elena Vasquez, running example), 1.5, 2.8, 3.8, 10.7, 21.2, 24.7, 25.3
notoperator, 4.5, C.2
O
- O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ), see Big-O notation
- object, 14.2, 3.10, 14.3
- object-oriented programming (OOP), 14.1-16.9
- Observer pattern, 16.5
- off-by-one error, 5.9, 7.3, 8.2
open(), 10.2, 10.3- Open/Closed Principle, 16.2
- operator, 3.4, 3.6, 4.5
- arithmetic, 3.4
- Boolean, 4.5
- comparison, 3.6
- membership (
in,not in), 8.2, 9.2, 9.7 - precedence, 3.4, 4.5, C.2
oroperator, 4.5, C.2ord(), 6 (exercises), 7 (exercises), A.11
P
- package, 12.6, 12.7, 23.3
- pagination (API), 21.7
- parameter, 6.2, 6.3
- default, 6.3
- keyword, 6.3
*args, 6.3
- parent class (superclass), 15.1, 15.3
passstatement, 11.9, 14.1pathlibmodule, 10.6, 12.3, 24.6Path, 10.6glob()/rglob(), 12.3, 24.6mkdir(), 10.6
- pattern recognition, 1.2
pip, 12.7, 23.3, 23.7- polymorphism, 15.5, 15.10, 16.2
pop(), list method, 8.4, 20.2print(), 2.7, 2.4, 6.4endparameter, 2.7, 5.8sepparameter, 2.7
- program, 1.1
@property, 14.7, 15.9- pseudocode, 17.8
- pull request, 25.7, 26.6
push(Git), 25.7push(stack), 20.2- PyPI (Python Package Index), 23.3
pytest, 13.3, 13.4, 13.7
Q
- queue, 20.4, 20.5
dequeimplementation, 20.4
R
raisestatement, 11.7, 11.9randommodule, 12.2, 12.3range(), 5.2, 5.6- rate limiting (API), 21.7, 24.5
remodule (regular expressions), 22.2-22.12findall(), 22.2, 22.6match(), 22.2search(), 22.2sub(), 22.7
- read mode (file), 10.2
- recursion, 18.1-18.9
- base case, 18.1
- recursive case, 18.1
- tail recursion, 18.11
- tree recursion, 18.6
- vs. iteration, 18.5
- refactoring, 16.8, 26.7
- regression test, 13.11
- regular expression, 22.1-22.12
- character class, 22.3
- capture group, 22.6
- greedy vs. lazy, 22.8
- quantifier, 22.4
remove(), list method, 8.4- REPL, 2.4, B.3
replace(), string method, 7.5- repository (Git), 25.3, 25.7
requestslibrary, 21.5, 23.3requirements.txt, 23.4, B.5- REST API, 21.4
returnstatement, 6.4, 6.10- multiple values, 6.4, 8.7
reverse(), list method, 8.4reversed(), A.11robots.txt, 24.5- runtime error, 11.2
S
- scope, 6.5
- LEGB rule, 6.5
- Scrum, 26.4
- SDLC (Software Development Lifecycle), 26.1-26.9
self, 14.3, 14.5- selection sort, 19.5, 19.9
- Selenium, 24.9
- semantic versioning, 23.3
- sentinel value, 5.4, 5.7
- set, 9.7, 9.8
add(), 9.7difference()/-, 9.8discard(), 9.7intersection()/&, 9.8remove(), 9.7symmetric_difference()/^, 9.8union()/|, 9.8
- shallow copy, 8.8
- shell, 2.3, B.3
- short-circuit evaluation, 4.6, C.2
- Single Responsibility Principle, 6.8, 16.2
- slice, 7.3, 8.2
- SOLID principles, 16.2
sort(), list method, 8.4, 19.8sorted(), 8.4, 8.11, 19.8- space complexity, 17.9
- special method (dunder), 14.6
__eq__, 14.6, 16.7__init__, 14.3__repr__, 14.6, 16.7__str__, 14.6
split(), string method, 7.5, 9.4- sprint (Scrum), 26.3, 26.4
- stack (data structure), 20.2, 20.3
- stack frame, 6.6, 18.1
- stack overflow, 18.8
- staging area (Git), 25.4
- standard library, 12.3
- statement, 3.1, 4.2
- status code (HTTP), 21.5
strtype, 3.3, 7.2-7.5- Strategy pattern, 16.4
- string, 7.1-7.9
- formatting, see f-string
- immutability, 7.4
- indexing, 7.2
- methods, see
split(),join(),strip(),replace(),find(),upper(),lower() - slicing, 7.3
strip(), string method, 7.5, 10.5super(), 15.4, 15.2SyntaxError, see exception- syntax error, 2.10, 11.2, D.2
T
- TaskFlow CLI (progressive project), 1.5, and the Project Checkpoint section of Chapters 2-27
- TDD (Test-Driven Development), 13.5
- technical debt, 26.7
- terminal, 2.3, B.3
- test case, 13.3
- test suite, 13.3, 13.11
- testing, 13.1-13.11
- time complexity, 17.2, 17.3, 19.9
- Timsort, 19.8
- traceback, 11.3, 2.10, 6.6
- tracing (hand execution), 17.8, 18.9
- tree (data structure), 20.8, 24.2
True, 3.3, 4.4- truth table, 4.5, C.5
- truthiness, 3.7, 4.4, 4.5
try/except, 11.4, 11.6- tuple, 8.7, 9.9
- unpacking, 8.7, 6.4
type(), 3.3, A.11- type casting, 3.7
TypeError, see exception
U
- undo/redo (stack application), 20.3, 20.10
- unit test, 13.2, 13.3
unittestmodule, 13.3- unpacking, 8.7, 6.4, 9.4
upper(), string method, 7.5- user story, 26.3, 26.5
V
ValueError, see exception- variable, 3.1, 3.2
- as name tag (not box), 3.1, 3.10, 8.8
venv, see virtual environment- version control, 25.1-25.9
- virtual environment, 23.1, 23.2, B.5
- VS Code, 2.5, B.2
W
- Waterfall methodology, 26.2
- web scraping, 24.1-24.5
whileloop, 5.4, 5.5withstatement, 10.3- write mode (file), 10.2, 10.4
Z
ZeroDivisionError, see exceptionzip(), 8.5
This index covers all 27 chapters and the appendices. For term definitions, see the Glossary (Appendix E). For syntax lookup, see the Python Quick Reference (Appendix A).