π gscandelari.github.io/python_projects
A structured learning repository covering Python from beginner to advanced level β with exercises, solutions, mini-projects, and Jupyter Notebooks for every concept.
This repository is a curated collection of Python concepts, exercises, and projects organized by difficulty level. Whether you are just starting or looking to sharpen your advanced skills, you will find practical, well-documented content here.
Each topic follows a consistent structure:
- A README with explanation and examples
- A Jupyter Notebook for interactive learning
- Exercises β easy β medium β challenge
- Solutions with detailed explanations
python_projects/
β
βββ beginner/
β βββ 01-fundamentals/ # Variables, types, operators
β βββ 02-control-flow/ # if/elif/else, while, for, break/continue
β βββ 03-data-structures/ # Lists, dicts, tuples, sets
β βββ 04-functions/ # def, args, kwargs, lambda, scope
β βββ 05-string-manipulation/ # Formatting, methods, regex basics
β βββ mini-projects/
β βββ 01-number-guessing-game/
β βββ 02-contact-book/
β βββ 03-text-analyzer/
β
βββ intermediate/
β βββ 01-oop/ # Classes, inheritance, dunder methods
β βββ 02-modules-packages/ # import, __init__.py, stdlib tour
β βββ 03-file-handling/ # open, pathlib, CSV, JSON
β βββ 04-error-handling/ # try/except, custom exceptions, context managers
β βββ 05-comprehensions/ # List, dict, set, generator expressions
β βββ mini-projects/
β βββ 01-grade-manager/
β βββ 02-finance-tracker/
β βββ 03-file-organizer/
β
βββ advanced/
β βββ 01-decorators-generators/ # functools.wraps, args, class-based, yield, send
β βββ 02-concurrency-async/ # threading, asyncio, multiprocessing
β βββ 03-testing/ # pytest, fixtures, parametrize, Mock, coverage
β βββ 04-design-patterns/ # Singleton, Factory, Observer, Strategy, Commandβ¦
β βββ projects/
β βββ 01-task-queue/ # threading + PriorityQueue + Observer
β βββ 02-test-suite/ # Full pytest suite for a Bank system
β βββ 03-pattern-library/ # Builder + Observer + generator pipeline
β
βββ data-science/
β βββ 01-numpy/ # Arrays, broadcasting, linear algebra
β βββ 02-pandas/ # DataFrame, groupby, merge, time series
β βββ 03-matplotlib/ # Line, bar, scatter, subplots, heatmap
β
βββ web-development/
β βββ 01-fastapi/ # REST API, Pydantic, deps, async, routers
β βββ 02-flask/ # Routes, blueprints, middleware, app factory
β
βββ automation/
β βββ 01-requests-beautifulsoup/ # HTTP requests, scraping, pagination
β βββ 02-automation/ # pathlib, shutil, subprocess, logging, schedule
β
βββ assets/ # SVG banner + 7 concept diagrams (PNG)
β βββ banner.svg
β βββ roadmap.png
β βββ generate_diagrams.py
β βββ *.png
β
βββ docs/ # Cheatsheets, interview prep, setup guides
β βββ cheatsheets/ # python-core, oop, async, pandas, git
β βββ interview-prep/ # python-basics, oop-questions, algorithms
β βββ guides/ # venv-setup, pytest-guide, jupyter-guide
β
βββ website/ # GitHub Pages landing page source
β βββ index.html
β
βββ exercises/ # Standalone cross-topic exercise sets (backlog)
β βββ beginner/
β βββ intermediate/
β βββ advanced/
βββ notebooks/ # Standalone thematic notebooks (backlog)
βββ solutions/ # Standalone cross-topic solutions (backlog)
- 01 - Fundamentals (variables, types, operators)
- 02 - Control Flow (if/else, loops)
- 03 - Data Structures (lists, dicts, tuples, sets)
- 04 - Functions
- 05 - String Manipulation
- Mini-Projects (Number Guessing Game, Contact Book, Text Analyzer)
- 01 - Object-Oriented Programming (OOP)
- 02 - Modules & Packages
- 03 - File Handling
- 04 - Error Handling & Exceptions
- 05 - List/Dict/Set Comprehensions
- Mini-Projects (Grade Manager, Finance Tracker, File Organizer)
- 01 - Decorators & Generators
- 02 - Concurrency & Async
- 03 - Testing (pytest)
- 04 - Design Patterns
- Capstone Projects (Task Queue, Test Suite, Pattern Library)
- Data Science (NumPy, Pandas, Matplotlib)
- Web Development (FastAPI, Flask)
- Automation & Scraping (Requests, BeautifulSoup, pathlib, schedule)
-
assets/β SVG banner + 7 concept diagrams (roadmap, data types, OOP, concurrency, design patterns, data science, web API) -
docs/cheatsheets/β Python Core, OOP, Async, Pandas, Git -
docs/interview-prep/β Python Basics, OOP Questions, Algorithms & DS -
docs/guides/β Virtual Environments, pytest, Jupyter -
website/β GitHub Pages landing page (auto-deployed via Actions)
-
exercises/β cross-topic standalone exercise sets -
notebooks/β thematic standalone notebooks (algorithms, interview problems) -
solutions/β cross-topic standalone solutions
| Category | Files |
|---|---|
| Cheatsheets | Python Core Β· OOP Β· Async Β· Pandas Β· Git |
| Interview Prep | Python Basics Β· OOP Questions Β· Algorithms |
| Guides | Venv & pip Β· pytest Β· Jupyter |
-
Clone the repository
git clone git@github.com:GScandelari/python_projects.git cd python_projects -
Create a virtual environment (recommended)
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows
-
Install dependencies
pip install -r requirements.txt
-
Navigate to any topic folder and follow the local README.
-
Try the exercises before looking at the solutions.
| Section | Packages |
|---|---|
| Core | Python 3.10+ |
| Notebooks | jupyter |
| Testing | pytest pytest-cov pytest-asyncio |
| Data Science | numpy pandas matplotlib |
| Web Development | fastapi uvicorn[standard] flask |
| Automation | requests beautifulsoup4 lxml schedule watchdog |
Install everything at once:
pip install jupyter pytest pytest-cov pytest-asyncio \
numpy pandas matplotlib \
fastapi uvicorn[standard] flask \
requests beautifulsoup4 lxml schedule watchdogContributions are welcome! Please read CONTRIBUTING.md before opening a pull request.
- Fork the project
- Create your branch:
git checkout -b feature/your-topic - Commit your changes:
git commit -m "Add: your-topic module" - Push to the branch:
git push origin feature/your-topic - Open a Pull Request
This project is licensed under the MIT License. See LICENSE for details.
Built with focus and consistency. One concept at a time.
