Skip to content

Repository files navigation

my-pythonic-zoo

CI & Policy Checks Python 3.12+ License: MIT

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.

Explore the Zoo

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.

Try an Exhibit

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

Contribute

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.

People Behind the Exhibits

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.

my-pythonic-zoo social preview

Last updated: 24 September 2026 · Maintained by @lizc-au

Releases

Packages

Contributors

Languages