Skip to content

Repository files navigation

Gaby Learns Python — THE GRAND ARCADE!

Welcome, welcome, WELCOME, to the most SPECTACULAR, the most FABULOUS, the most EXCITING Python game show this side of the digital realm! My name is Caine, and I'll be your HOST through this wonderful ARCADE of programming! Isn't that EXCITING? HAHAHA!

You see, this repository is your CABINET — your home base, your backstage pass, your HIGH SCORE TABLE for tracking everything the Gaby learns while diving headfirst into the wonderful, wacky world of Python! Let me show you around!

Project Structure — THE ARCADE FLOORPLAN!

GabyLearnsPython/ ★ THE ARCADE ★
├── PylingsTUI/ ☆ THE CONTROLLER CONSOLE ☆
│ ├── Sources/pylings/main.swift # Swift-powered TUI (fancy, huh?)
│ ├── Package.swift # Swift package manifest
│ ├── Makefile # Build shortcuts!
│ ├── pylings # Python test runner!
│ ├── Practice/ # ★ THE PRACTICE CABINET ★
│ │ ├── Mod1.py # Variables, Math, Functions
│ │ ├── Mod2.py # Data Types and Functions
│ │ ├── Mod3.py # Operators and Conditionals
│ │ ├── Mod4.py # Scopes
│ │ ├── Mod5.py # Loops
│ │ ├── Mod6.py # Error Handling
│ │ ├── Mod7.py # Classes and Inheritance
│ │ ├── Mod8.py # Common Methods
│ │ ├── Mod9.py # Modules and Packages
│ │ ├── Mod10.py # List Comprehensions
│ │ ├── Mod11.py # Advanced Dicts and Sets
│ │ ├── Mod12.py # Advanced Functions
│ │ ├── Mod13.py # String Formatting and Text
│ │ ├── Mod14.py # Numbers and Math
│ │ ├── Mod15.py # Dates and Time
│ │ ├── Mod16.py # CSV and JSON
│ │ └── README.md # Cabinet-specific docs!
│ └── .gitignore # The invisible wall!
├── Assignments/ ☆ THE BONUS ROUND ☆
│ ├── assignment1.py # Bakery scenario — Variables, Math, Functions
│ ├── assignment2.py # The Bakery's Price Check
│ ├── assignment3.py # The Bakery Gets Bigger (Classes!)
│ ├── assignment4.py # The Bakery's Busy Day (Loops!)
│ ├── assignment5.py # The Bakery's Recipe Module
│ ├── assignment6.py # The Bakery's Menu Board
│ ├── assignment7.py # The Bakery's Price Calculator
│ ├── assignment8.py # The Bakery's Delivery Schedule
│ ├── assignment9.py # The Bakery's Sales Report
│ ├── assignment10.py # The Bakery's Data Dashboard (FINAL BOSS!)
│ └── README.md # Scoreboard and feedback!
├── Lesson/ ☆ THE TRAINING ROOM ☆
│ ├── day1.ipynb # Variables, Math, Functions
│ ├── day2.ipynb # Data Types and Functions
│ ├── day3.ipynb # Operators and Conditionals
│ ├── day4.ipynb # Scopes (L.E.G.B.!)
│ ├── day5.ipynb # Loops (For, While, Break!)
│ ├── day6.ipynb # Error Handling (Try, Except, Raise!)
│ ├── day7.ipynb # Classes and Inheritance
│ ├── day8.ipynb # Common Methods
│ ├── day9.ipynb # File I/O
│ ├── day10.ipynb # Modules and Packages
│ ├── day11.ipynb # List Comprehensions
│ ├── day12.ipynb # Advanced Dicts and Sets
│ ├── day13.ipynb # Advanced Functions
│ ├── day14.ipynb # String Formatting and Text
│ ├── day15.ipynb # Numbers and Math
│ ├── day16.ipynb # Dates and Time
│ ├── day17.ipynb # CSV and JSON
│ ├── day18.ipynb # Thinking in Arrays
│ ├── day19.ipynb # Building a Data Pipeline
│ └── day20.ipynb # Introduction to Pandas!
├── install.sh ☆ INSERT COIN ☆
├── pylings-tui ☆ THE QUICK-PLAY BUTTON ☆
├── .gitmodules # Arcade cabinet map!
├── .gitignore # The invisible wall!
└── README.md # THIS VERY FILE! META!

What's inside? — THE THREE HIGH SCORES!

☆ The Training Room (Lessons) ☆

This is where the ACTUAL teaching happens! Each notebook is a new LEVEL for the Gaby!

DayTitleWhat the Gaby will learn
1Intro to Variables, Math, and basic FunctionsBoxes for data! Math! The building blocks!
2Deep dive into Data Types and FunctionsStrings, Ints, Floats — OH MY!
3Operators and ConditionalsMaking DECISIONS! if, elif, else!
4ScopesLocal vs. Global — the L.E.G.B. rule!
5LoopsAround and around we GO! For, While, Break!
6Error HandlingTry, Except, Raise — catching mistakes!
7Classes and InheritanceBlueprints for objects! Family trees for code!
8Common MethodsHandy tools for Strings, Lists, Dicts!
9File I/ORead, Write, Append — talking to files!
10Modules and PackagesImporting, pip, your own modules!
11List ComprehensionsOne-line power! Filter, transform, DONE!
12Advanced Dicts and Setsdefaultdict, Counter, set magic!
13Advanced Functions*args, lambda, map, filter — OH MY!
14String Formatting and Textf-strings, regex, formatting galore!
15Numbers and Mathmath, random, statistics — number fun!
16Dates and Timedatetime, timedelta — time travel!
17CSV and JSONReading and writing data like a PRO!
18Thinking in Arrayszip(), column-based thinking, pre-pandas!
19Building a Data PipelineExtract-Transform-Analyze-Output!
20Introduction to PandasDataFrames! Series! REAL data analysis!

★ THE PRACTICE CABINET! (Rustlings-style Exercises) ★

Oh, oh, OH! This is my FAVORITE part! A self-checking practice system inspired by Rustlings! Each Practice/Mod{N}.py file looks like a REAL project module with # TODO markers and raise NotImplementedError() stubs. The Gaby replaces them with code and — WHOOSH — the checker says if it's CORRECT!

AND NOW, FOR OUR NEXT CHALLENGE — THE PYLINGS TUI!

That's right! I've built a FABULOUS keyboard-controlled Terminal User Interface! It's like a lazygit for learning Python! Just run:

pylings

And the Gaby will see a beautiful list of all exercises. Navigate with arrow keys, press ENTER to run a test, press h for hints, press e to edit the file, press r to refresh — it's a CONTROL PANEL for learning! Isn't that EXCITING? HAHAHA!

Not installed yet? Well then, let me wave my digital wand:

# Option A: The Full Install (builds + installs)
sh install.sh
# Option B: Quick play from the repo
./pylings-tui

The first time install.sh runs, it ALSO initializes the submodule that contains all the Practice exercises. It's like a PRIZE DISPENSER — POP! Everything the Gaby needs comes out of one tiny script!

If the Gaby prefers the classic command-line experience (no fancy TUI):

pylings next # Run the next incomplete exercise
pylings list # Show progress on all exercises
pylings 3 # Run a specific module

When ALL checks pass, remove the # I AM NOT DONE line from the file to mark it COMPLETE! Like hearing DING DING DING on a slot machine!

☆ THE BONUS ROUND (Assignments) ☆

This is where the Gaby PUTS SKILLS TO THE TEST! Each assignment is like a BOSS LEVEL!

AssignmentTitleWhat the Gaby will do
1Cupcake CounterVariables and functions to manage flour!
2The Bakery's Price CheckOperators and conditionals to flag orders!
3The Bakery Gets BiggerClasses and Inheritance for baked goods!
4The Bakery's Busy DayLoops and Scopes to process orders!
5The Bakery's Recipe ModuleOrganize recipes into a module!
6The Bakery's Menu BoardList/dict/set comprehensions on menus!
7The Bakery's Price CalculatorAdvanced functions, lambdas, closures!
8The Bakery's Delivery ScheduleDates, times, timedeltas!
9The Bakery's Sales ReportCSV in, JSON out!
10The Bakery's Data DashboardFINAL BOSS — everything combined!

Track progress and see SCORES in the Scoreboard — where the Gaby can see what's been MASTERED and what needs a little more... PRACTICE! Ooh, I love that word!

How to play — THE GABY'S GUIDE!

  1. Start in the Training Room! Open the Lesson/ folder and go through the files in order. Read the comments — they're like the GAME MANUAL!

  2. Try the Bonus Round! Once a lesson clicks, head to the Assignments/ folder and show off what the Gaby has learned!

  3. Run the pylings! Use the pylings command to practice with auto-graded exercises. The TUI makes it feel like a VIDEO GAME!

  4. Run the code! Open lesson notebooks in VS Code or Jupyter. For assignments, run them in the terminal:

    python3 Assignments/assignment1.py

Resources — THE CHEAT CODE VAULT!

Oh! And speaking of helpful tools, here are some WONDERFUL resources I've curated:


NOW, THE GABY — our wonderful contestant — must step up to the ARCADE! The code awaits! The challenges call! The HIGH SCORE is there for the taking!

HAHAHA! Isn't this WONDERFUL?!

Let's go! 🕹️

About

A Python tutoring repo I built to teach a beginner from the ground up. Features 20 lessons, bakery-themed assignments, and a self-checking practice system inspired by Rustlings.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages