Python Programming
A lightweight execution-visualization book.
Foundations
Hello, Numbers!
Variables
Lists
Loops
Conditionals
Functions
Data Types
Primitive Types
Strings
String Operations
Type Conversion
None Type
Control Flow
Match Statement
Loop Patterns
Break and Continue
Nested Loops
Collections
2D Lists
Tuples
Dictionaries
Sets
Deque
Functions & Scope
Default Arguments
Variable Scope and Lifetime
*args and **kwargs
Lambda
Pythonic Patterns
List Comprehension
Dictionary Comprehension
Set Comprehension
Generator Functions
Generator Expressions
Object-Oriented Basics
Classes
__init__
Encapsulation
self
OOP Intermediate
Inheritance
Polymorphism
Abstract Classes
Protocols
OOP Advanced
Multiple Inheritance
Mixins
@classmethod and @staticmethod
@property
Exceptions
Try-Except
Raise
Custom Exceptions
Context Managers
Modern Python Types
Enum Introduction
Dataclass Introduction
NamedTuple Introduction
Typing Module Introduction
Type Hints
Type Hints Basics
Type Hints for Collections
Optional Types (and None)
Union Types
Callable Types
Decorators
Decorators Introduction
Decorators with Arguments
Class-based Decorators
functools.wraps
Iterators & Generators
Iterator Protocol
Generator Functions with yield
Generator send() and Coroutines
Itertools Introduction
Common Algorithms
Linear Search
Binary Search
Bubble Sort
Selection Sort
Merge Sort
Recursion Introduction
Recursion Examples
String Processing
String Methods
String Formatting
F-Strings
Regular Expressions Introduction
Regular Expression Patterns
Date & Time
Date Introduction
Time Introduction
DateTime Formatting
DateTime Calculations
Math & Numbers
Math Functions
Decimal Introduction
Fractions Introduction
Random Number Generation
Utilities
Functools Module
Collections Module
Operator Module
Bisect and Heapq Modules
Python Specific
Unpacking
Walrus Operator
Slots
Descriptors