This repository is designed to help you learn Python through hands-on practice with personalized assignments generated by Claude. Work at your own pace, jump between topics as needed, and build a strong foundation in Python programming.
- Create your own branch from
main - Copy the progress tracking template to track your learning journey
- Ask Claude for assignments based on where you are in the curriculum
- Complete assignments, commit your work, and request feedback
- Update your progress file as you complete each topic segment
- Installing Python and setting up your environment
- Running Python scripts
- Using the Python interactive shell (REPL)
- Basic syntax and indentation rules
- Variables and assignment
- Basic data types: int, float, str, bool
- Type conversion and casting
- Understanding None
- Arithmetic operators (+, -, *, /, //, %, **)
- Comparison operators (==, !=, <, >, <=, >=)
- Logical operators (and, or, not)
- String operations and concatenation
- if, elif, else statements
- Nested conditionals
- Ternary operator
- Truthy and falsy values
- while loops
- for loops and the range() function
- Loop control: break, continue, pass
- Nested loops
- Loop else clauses
- Creating and accessing lists
- List methods (append, extend, insert, remove, pop, etc.)
- List slicing
- List comprehensions
- Nested lists
- Creating and using tuples
- Tuple unpacking
- Immutability of tuples
- When to use tuples vs lists
- Creating and accessing dictionaries
- Dictionary methods (keys, values, items, get, etc.)
- Dictionary comprehensions
- Nested dictionaries
- Creating and using sets
- Set operations (union, intersection, difference)
- Set comprehensions
- Frozen sets
- Defining and calling functions
- Parameters and arguments
- Return values
- Default parameters
- Keyword arguments
- *args and **kwargs
- Lambda functions
- Scope and namespaces (local, global, nonlocal)
- Recursive functions
- String methods (split, join, strip, replace, etc.)
- String formatting (f-strings, format(), %-formatting)
- String slicing and indexing
- Raw strings and escape characters
- Pattern matching basics
- re module functions (search, match, findall, sub)
- Common regex patterns
- Groups and capturing
- Opening and closing files
- Reading files (read, readline, readlines)
- Writing to files
- File modes (r, w, a, r+, etc.)
- Using context managers (with statement)
- Text files
- CSV files
- JSON files
- Working with file paths (os.path, pathlib)
- Understanding exceptions
- try, except, else, finally blocks
- Catching specific exceptions
- Raising exceptions
- Custom exceptions
- Defining classes
- Creating instances
- Instance attributes and methods
- The init method
- The self parameter
- Encapsulation
- Inheritance and super()
- Polymorphism
- Class methods and static methods
- Property decorators
- str and repr
- len, getitem, setitem
- Operator overloading
- Context managers (enter, exit)
- Importing modules
- from...import statements
- Module aliases
- The name variable
- Creating your own modules
- Package structure
- init.py files
- Relative vs absolute imports
- Understanding iterators
- The iter() and next() functions
- Creating generators with yield
- Generator expressions
- Function decorators
- Creating custom decorators
- Decorators with arguments
- Class decorators
- Understanding context managers
- Creating custom context managers
- Using contextlib
- datetime and time
- collections (Counter, defaultdict, namedtuple, deque)
- itertools
- functools
- math and random
- sys module
- os module
- subprocess
- argparse for command-line arguments
- Copying vs referencing
- Deep copy vs shallow copy
- ChainMap and other advanced collections
- map, filter, reduce
- Partial functions
- Higher-order functions
- Basic type hints
- Optional and Union types
- Type checking with mypy
- Writing unit tests with unittest
- Using pytest
- Test-driven development basics
- Mocking and fixtures
- Using print debugging effectively
- Python debugger (pdb)
- Understanding tracebacks
- Common debugging strategies
- pip basics
- requirements.txt
- Virtual environments (venv)
- requests (HTTP library)
- pandas (data analysis)
- numpy (numerical computing)
- matplotlib (plotting)
- This curriculum is designed to be flexible - you don't need to go in order
- Some topics build on others, so check prerequisites
- Return to difficult topics as many times as needed
- Ask Claude to generate assignments at appropriate difficulty levels
- Request additional practice on topics where you struggle