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
  • and operator, 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.10
  • append() vs. extend(), 8.4
  • argument, 6.3, 6.2, 6.10
  • *args, 6.3
  • assert statement, 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
  • bool type, 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
  • break statement, 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
  • collections module, 9.10, 12.3, 20.4
    • Counter, 9.10, 12.3
    • defaultdict, 9.10, 12.3
    • deque, 20.4, 20.5
    • namedtuple, 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 if statement
  • constructor (__init__), 14.3, 15.4
  • context manager (with statement), 10.3, 10.4, 11.6
  • continue statement, 5.7, 5.9
  • copy(), list method, 8.8
  • copy module, 8.8
    • deepcopy(), 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
  • csv module, 10.7, 21.2
    • DictReader, 10.7, 21.2
    • DictWriter, 10.7, 21.2

D

  • data type, 3.3, 3.7
  • dataclass, 16.7, 16.8, 16.10
  • datetime module, 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
  • def statement, 6.2
  • De Morgan's laws, C.2
  • dependency (package), 23.1, 23.4, 23.6, 23.7
  • deque, see collections
  • 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.6
    • items(), 9.4
    • keys(), 9.4
    • pop(), 9.3
    • setdefault(), 10.7, A.5
    • update(), 9.3
    • values(), 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.8
  • else (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.6
    • FileNotFoundError, 10.9, 11.5
    • ImportError, 12.9
    • IndexError, 7.2, 8.2, 11.5
    • KeyError, 9.2, 11.5
    • ModuleNotFoundError, 12.9
    • NameError, 2.10, 6.5
    • RecursionError, 18.8
    • SyntaxError, 2.10, 4.9, 11.2
    • TypeError, 3.7, 11.5
    • ValueError, 3.7, 11.4, 11.7
    • ZeroDivisionError, 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.2
    • readline(), 10.2
    • readlines(), 10.2
    • write mode, 10.2, 10.4
    • write(), 10.4
    • writelines(), 10.4
  • filter(), A.11
  • finally clause, 11.6
  • float type, 3.3, 3.4, 3.7
  • floating-point precision, 3.3, 13.4
  • for loop, 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.4
    • git branch, 25.5
    • git switch, 25.5
    • git clone, 25.7
    • git commit, 25.3, 25.4
    • git diff, 25.3
    • git init, 25.3
    • git log, 25.3
    • git merge, 25.6
    • git pull, 25.7
    • git push, 25.7
    • git 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-a relationship, 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.8
  • if statement, 4.2, 4.3, 4.4
    • elif, 4.4
    • else, 4.3
    • nested, 4.7
  • immutable, 7.4, 8.7, 9.9
  • import statement, 12.1, 12.2
    • from...import, 12.2
    • import...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.4
  • input(), 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
  • int type, 3.3, 3.7
  • isinstance(), 15.2, 15.5, A.11
  • is-a relationship, 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
  • json module, 10.8, 21.3
    • dump(), 10.8
    • dumps(), 10.8, 21.3
    • load(), 10.8
    • loads(), 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
    • else clause, 5.7
    • for, 5.2
    • infinite, 5.4, 5.9
    • nested, 5.8, 17.4
    • while, 5.4
  • loop variable, 5.2, 5.9

M

  • map(), A.11
  • match/case statement, 4.8
  • math module, 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.5
  • NameError, 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
  • not operator, 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
  • or operator, 4.5, C.2
  • ord(), 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
  • pass statement, 11.9, 14.1
  • pathlib module, 10.6, 12.3, 24.6
    • Path, 10.6
    • glob() / rglob(), 12.3, 24.6
    • mkdir(), 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.2
  • print(), 2.7, 2.4, 6.4
    • end parameter, 2.7, 5.8
    • sep parameter, 2.7
  • program, 1.1
  • @property, 14.7, 15.9
  • pseudocode, 17.8
  • pull request, 25.7, 26.6
  • push (Git), 25.7
  • push (stack), 20.2
  • PyPI (Python Package Index), 23.3
  • pytest, 13.3, 13.4, 13.7

Q

  • queue, 20.4, 20.5
    • deque implementation, 20.4

R

  • raise statement, 11.7, 11.9
  • random module, 12.2, 12.3
  • range(), 5.2, 5.6
  • rate limiting (API), 21.7, 24.5
  • re module (regular expressions), 22.2-22.12
    • findall(), 22.2, 22.6
    • match(), 22.2
    • search(), 22.2
    • sub(), 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
  • requests library, 21.5, 23.3
  • requirements.txt, 23.4, B.5
  • REST API, 21.4
  • return statement, 6.4, 6.10
    • multiple values, 6.4, 8.7
  • reverse(), list method, 8.4
  • reversed(), A.11
  • robots.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.7
    • difference() / -, 9.8
    • discard(), 9.7
    • intersection() / &, 9.8
    • remove(), 9.7
    • symmetric_difference() / ^, 9.8
    • union() / |, 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.8
  • sorted(), 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
  • str type, 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.5
  • super(), 15.4, 15.2
  • SyntaxError, 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
  • unittest module, 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
  • while loop, 5.4, 5.5
  • with statement, 10.3
  • write mode (file), 10.2, 10.4

Z

  • ZeroDivisionError, see exception
  • zip(), 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).