All creatures great and small, wise and wonderful.
A growing collection of small, runnable Python exhibits for learning how code works. Some topics form step-by-step paths from a simple mental model to a larger program; Python 3.12 or newer is required.
| Learning area | What you can explore | Start here |
|---|---|---|
| Algorithms & Data Structures | Binary search trees, exact cover, Algorithm X, and Dancing Links | Algorithms guide |
| Pythonic Thinking | Names and objects, types, iteration, and context managers | Pythonic Thinking guide |
| Object-Oriented Python | Composition, domain models, encapsulation, factories, inheritance, and responsibilities | Object-Oriented guide |
| Native GUI | Tkinter windows, events, validation, layout, dialogs, and an integrated showcase | Native GUI guide |
| Data Cleaning | Text standardisation and Australian phone number formatting | Data Cleaning folder |
| Database Basics | SQLite connection handling and transactional CRUD operations | Database Basics folder |
| User Management | Password hashing and email input validation | User Management folder |
| Interview Preparation | Searchable questions with answer points, references, and related exhibits | Interview Preparation guide |
Each guide gives you the study order and links to its exhibits. You can also open a single script and follow its comments at your own pace.
From a terminal, run these commands one at a time:
| Step | Command | Note |
|---|---|---|
| Clone | git clone https://github.com/lizc-au/my-pythonic-zoo.git |
Skip if you already have the repo. |
| Enter the folder | cd my-pythonic-zoo |
Run the remaining commands here. |
| Check Python | python --version |
Use Python 3.12 or newer. |
| Run a small example | python data_cleaning/string_cleaner.py |
This exhibit needs no extra packages. |
On Windows, py -3.12 can replace python if that is how your Python installation is registered. Many other exhibits also run directly; check their category guides for prerequisites or GUI launchers.
Development tools and quality checks
| Tool or file | Role | Where to look |
|---|---|---|
| Python virtual environment | Keep project packages separate from other projects | python -m venv .venv |
| VS Code or another editor | Read, run, and debug exhibits | Open the cloned repository folder. |
| Git and GitHub | Track changes and propose contributions | Contributing guide |
pyproject.toml |
Python 3.12 target, dependency groups, Ruff, and mypy settings | Project configuration |
| Quality script | Run formatting, linting, type checks, and tests after installing development dependencies | python scripts/check_quality.py |
Ideas, corrections, new exhibits, and reviews are welcome. Read CONTRIBUTING.md, and create or comment on an issue before starting a larger feature so work can be coordinated.
AI assistance and contributor expectations
AI coding assistants are welcome when a human contributor reviews, understands, and tests the submitted work. Disclose a pull request generated or submitted by an automated agent or bot in its description.
This project uses ChatGPT interactively for pair programming, review, documentation, testing, and exploring Python concepts. @lizc-au reviews and maintains the project and its contributions; the repository is not autonomously developed or maintained by AI agents.
Upcoming exhibits and longer learning paths
This is an evolving learning resource. An idea may become one focused exhibit or a series of small steps as its prerequisites become clear.
| Area | Ideas in progress or under consideration |
|---|---|
| Communication and APIs | Australian Postcode API Lookup (Issue #3); HTTP status checker |
| Automation | Safe file management and archiving; environment checker |
| Visualisation | Maze generation and pathfinding; mathematical plotting; statistics and data displays |
| Algorithms | Binary search tree progression (Issue #7); node relationships, traversal, and shortest paths |
| Physics and dimensions | 3D rotation and projection; vectors and 2D physics; later dimensional and motion simulations |
| Data science | Lightweight CSV matrix maths |
Some ideas are deliberately weird and wonderful. Curiosity about how something works is a good reason to build a small experiment.
| Contributor | Contribution |
|---|---|
| @HeaTTap | Australian Phone Number Sanitiser (#2) |
| @aletgdev | Transactional SQLite CRUD (#48) |
| @Reh1t | BST Module 1: Structure and Ordering (#55) |
Thanks also to Reddit community members u/Diapolo10, u/ectomancer, and u/0xGollumDev for critiques, suggestions, and encouragement.
Last updated: 24 September 2026 · Maintained by @lizc-au
