Hello!
This repository contains Python projects I’ve built while learning and practicing Python — from beginner fundamentals to intermediate, object-oriented programs.
The goal of this repo is to:
- Strengthen Python fundamentals
- Practice problem-solving and logic
- Build small but complete programs from scratch
- Progress from procedural code to clean OOP design
Simulates an online ordering system.
Concepts: if/elif/else, f-strings
Online ticketing simulation that produces different outputs based on user input.
Concepts: conditional logic
Choose-your-own-adventure style game using nested conditionals.
Concepts: nested if/elif
Simple lottery simulator.
Concepts: random module
User defines the range for random number generation.
Coin toss simulation.
Concepts: random, logical operators
User vs computer Rock–Paper–Scissors game.
Concepts: lists, conditionals, random
Same game with a different logic structure.
Lottery/roulette simulation.
Concepts: lists, append, random
Experiments with list modification.
Further practice with lists and nested lists.
Classic FizzBuzz challenge.
Concepts: for loops, conditionals
Generates passwords based on user preferences.
Concepts: loops, lists, random
Simulates dice rolls and tracks how often 6 appears.
Text-based Hangman game.
Concepts: loops, lists, booleans, random
Revised version with ASCII art and external resources.
Resource file: hangman_resources.py
Encrypts/decrypts messages using Caesar Cipher logic.
Concepts: functions, loops, conditionals
Converts numerical grades into descriptive grades.
Concepts: dictionaries
Simulates a blind auction and determines the highest bidder.
Concepts: dictionaries, loops
Calculator that supports chained operations.
Concepts: functions, dictionaries, loops
Resource file: calcu_resources.py
Blackjack game against a computer dealer.
Concepts: functions with returns, loops, lists, conditionals
Checks whether a number is prime.
Concepts: scope, functions
Guess a number between 1–100 with limited attempts.
Concepts: loops, conditionals
Resource file: number_guess_resources.py
Improved version using multiple functions and constants.
Guess which option has more followers.
Concepts: dictionaries, functions, loops, random
Resource file: higher_lower_data.py
A command-line coffee machine simulation.
Features:
- Espresso / Latte / Cappuccino selection
- Resource management (water, milk, coffee)
- Coin processing & change handling
- Profit tracking
- Report & refill commands
- Safe checks for insufficient resources or money
Concepts Used:
- Nested dictionaries
- State management
- Control flow
- Input validation
- Debugging logic & indentation
Visual drawing project using Python’s turtle module.
Concepts: OOP, loops, angles, randomness, graphics
Simple table output using the PrettyTable package.
Concepts: third-party packages, classes, object methods
A command-line coffee machine simulation rebuilt using Object-Oriented Programming (OOP).
Features:
- Espresso / Latte / Cappuccino selection
- Ingredient resource tracking (water, milk, coffee)
- Coin-based payment system
- Change handling
- Profit tracking
- Report & shutdown commands
OOP Design:
- MenuItem – Represents a single drink
- Menu – Manages available drinks
- CoffeeMaker – Handles resources & preparation
- MoneyMachine – Processes payments
- main.py – Controls program flow
Concepts Used:
- Object-Oriented Programming (OOP)
- Classes & objects
- State management
- Multi-file project design
A command-line True/False quiz engine built using Object-Oriented Programming.
Features:
- Dynamic question loading from external data
- Question-by-question progression
- Case-insensitive answer checking
- Real-time score tracking
- Final score summary
Project Structure:
- Question – Represents a single question
- QuizBrain – Manages quiz flow, scoring, and logic
- main.py – Controls program execution and looping
Concepts Used:
- Object-Oriented Programming (OOP)
- Classes & objects
- Boolean logic
- While loops & state control
- Multi-file Python project architecture
A Python Turtle project that dynamically generates and overlays multiple regular polygons with randomized RGB colors. This project demonstrates mathematical angle calculation, nested loops, and basic generative art techniques.
Features
-
Draws polygons from 3 sides (triangle) to 10 sides (decagon)
-
Automatically calculates turning angle using: angle = 360 / number_of_sides
-
Applies a random RGB color to each shape
-
Overlays all polygons from the same starting position
-
Animates the drawing process using Turtle speed control
Concepts Used:
- Nested loops
- Mathematical geometry (360° rule)
- RGB color generation
- Randomization
- Turtle graphics
- Programmatic shape generation
Core Logic
Outer loop:
- Controls number of sides (3–10)
Inner loop:
- Draws one complete polygon
A structured random walk visualization built using Python Turtle Graphics. This project expands on turtle movement by introducing directional constraints and dynamic color mapping based on distance from the origin.
Features
- Grid-based random walk (0°, 90°, 180°, 270°)
- Prevents immediate 180° reversals (no jitter backtracking)
- Distance-based RGB heatmap scaling
- Smooth gradient from green (center) to red (outer range)
- Distance clamping to control gradient sensitivity
- Modular function design (
color()anddirect()) - Persistent center marker overlay
Concepts Used
- Geometry (Pythagorean distance formula)
- Scaling values into RGB range (0–255)
- List filtering & control logic
- Pure functions and modular design
- Separation of simulation logic and UI elements
- Procedural art principles
Visual Logic
- 🟢 Green → Near origin
- 🟡 Yellow → Mid-range
- 🔴 Red → Far from origin
The turtle's color dynamically updates after each move based on its distance from the center, creating a heatmap-style procedural visualization. This project demonstrates progression from basic turtle graphics to structured movement systems and behavior-based visual rendering.
This repository documents my progression from beginner Python fundamentals to intermediate object-oriented programming and structured, multi-file project design.