A practical, example-driven Python repository designed to help you learn Python from fundamentals to advanced concepts through clear, runnable code.
Each file is self-contained and focuses on a single concept, making the repository suitable for structured learning, revision, or reference.
If you like this project, please hit the ⭐ Star button and follow me on GitHub @blshaer!
This repository contains a complete Python tutorial designed for both beginners and experienced developers looking to refresh their knowledge. Each topic is organized in separate folders with practical, runnable examples.
Key Features:
- ✅ Self-contained files — Each file can be run independently
- ✅ Comprehensive comments — Detailed explanations for every concept
- ✅ Practical examples — Real-world use cases and patterns
- ✅ Progressive difficulty — From basics to advanced topics
| File | Topic | Description |
|---|---|---|
01_print.py |
Print Function | Output, formatting, f-strings, escape characters |
02_comments.py |
Comments | Single-line, multi-line, docstrings, best practices |
03_variables.py |
Variables | Assignment, naming conventions, multiple assignment |
04_data_types.py |
Data Types | Numbers, strings, booleans, type conversion |
| File | Topic | Description |
|---|---|---|
01_if_else.py |
If/Else | Conditionals, comparison operators, logical operators |
02_elif.py |
Elif | Multiple conditions, grading systems, ranges |
03_match_case.py |
Match/Case | Pattern matching (Python 3.10+), guards, unpacking |
| File | Topic | Description |
|---|---|---|
01_for_loop.py |
For Loops | Iteration, range(), enumerate(), zip() |
02_while_loop.py |
While Loops | Counters, sentinels, infinite loops |
03_break_continue.py |
Loop Control | break, continue, pass, for-else |
| File | Topic | Description |
|---|---|---|
01_lists.py |
Lists | Indexing, slicing, methods, comprehensions |
02_tuples.py |
Tuples | Immutability, unpacking, named tuples |
03_sets.py |
Sets | Operations, frozen sets, practical uses |
04_dictionaries.py |
Dictionaries | Methods, nesting, comprehensions |
| File | Topic | Description |
|---|---|---|
01_function_basics.py |
Function Basics | Defining functions, scope, docstrings |
02_arguments.py |
Arguments | Positional, keyword, *args, **kwargs, type hints |
03_return_values.py |
Return Values | Multiple returns, early returns, generators |
04_lambda_functions.py |
Lambda | Anonymous functions, map, filter, reduce |
| File | Topic | Description |
|---|---|---|
01_imports.py |
Imports | Import patterns, standard library, organization |
02_custom_modules.py |
Custom Modules | Creating modules, packages, __init__.py |
| File | Topic | Description |
|---|---|---|
01_try_except.py |
Try/Except | Exception handling, else, finally |
02_custom_exceptions.py |
Custom Exceptions | Creating exceptions, hierarchy, best practices |
| File | Topic | Description |
|---|---|---|
01_classes_objects.py |
Classes & Objects | Attributes, methods, self |
02_init_methods.py |
Init & Methods | Constructors, properties, classmethods |
03_inheritance.py |
Inheritance | Single/multiple inheritance, super(), MRO |
04_polymorphism.py |
Polymorphism | Duck typing, operator overloading, protocols |
| File | Topic | Description |
|---|---|---|
01_list_comprehensions.py |
Comprehensions | List, dict, set comprehensions |
02_generators.py |
Generators | Yield, iterators, memory efficiency |
03_decorators.py |
Decorators | Simple/parameterized decorators, functools |
04_context_managers.py |
Context Managers | with statement, __enter__/__exit__, contextlib |
| File | Topic | Description |
|---|---|---|
01_pep8.py |
PEP 8 | Python style guide, naming, formatting |
02_type_hinting.py |
Type Hinting | Type annotations, typing module, generics |
03_virtual_envs.py |
Virtual Environments | venv, pip, requirements.txt |
Follow these steps to clone the repository and set it up in your local editor:
-
Clone the repository Open your terminal and run:
git clone https://github.com/blshaer/python-by-example.git cd python-by-example -
Set up a Virtual Environment (Recommended) It's best practice to keep your projects isolated. Run these commands:
python -m venv venv # On Windows: .\venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install Dependencies Install the necessary tools for testing and formatting:
pip install -r requirements.txt
-
Open in your code editor We recommend Visual Studio Code. Open the project directly:
code . -
Explore and Run Navigate to any example, like
01_basics, and run the file:cd 01_basics python 01_print.py -
Read the comments — Detailed explanations are provided inline for every concept!
-
Try the Tests — Go to the new testing module to see how professional code is verified:
pytest 11_testing/01_test_basics.py
| Requirement | Version | Notes |
|---|---|---|
| Python | 3.10+ | Recommended (for match/case support) |
| Python | 3.8+ | Minimum (for most features) |
# Check your Python version
python --versionEach Python file follows a consistent structure:
"""
================================================================================
File: filename.py
Topic: Topic Name
================================================================================
Description of what the file covers...
Key Concepts:
- Concept 1
- Concept 2
- ...
================================================================================
"""
# -----------------------------------------------------------------------------
# Section 1: Basic Example
# -----------------------------------------------------------------------------
# ... code with inline comments ...
# -----------------------------------------------------------------------------
# Section 2: Advanced Example
# -----------------------------------------------------------------------------
# ... more code ...| 🌱 Beginner | 📈 Intermediate | 🚀 Advanced | 💼 Professional |
Recommended Flow:
Beginner → 01_basics → 02_control_flow → 03_loops
Intermediate → 04_data_structures → 05_functions → 06_modules
Advanced → 07_error_handling → 08_oop → 09_advanced
Professional → 10_best_practices → 11_testing
Put your skills to the test! Each project includes a challenge description (README.md) so you can try building it yourself before looking at the solution.
| # | Project | Difficulty | Concepts Applied |
|---|---|---|---|
| 01 | Number Guessing Game | 🟢 Beginner | Loops, Conditionals, Random module |
| 02 | Expense Tracker | 🟡 Intermediate | Dicts, File I/O (JSON), Functions |
| 03 | Library Management System | 🟠 Advanced | OOP, Inheritance, Custom Exceptions |
| 04 | Real-time Weather CLI | 🚀 Professional | API Requests, Decorators, Type Hints |
💡 Tip: Read the project
README.mdfirst and try to build it on your own before looking atsolution.py!
Use this checklist to track your learning progress:
- 01. Basics — Print, Comments, Variables, Data Types
- 02. Control Flow — If/Else, Elif, Match/Case
- 03. Loops — For, While, Break/Continue
- 04. Data Structures — Lists, Tuples, Sets, Dictionaries
- 05. Functions — Basics, Arguments, Returns, Lambda
- 06. Modules & Packages — Imports, Custom Modules
- 07. Error Handling — Try/Except, Custom Exceptions
- 08. OOP — Classes, Init, Inheritance, Polymorphism
- 09. Advanced Python — Comprehensions, Generators, Decorators
- 10. Best Practices — PEP8, Type Hints, Virtual Environments
- 11. Testing — Unit Tests, Pytest, Assertions
- Project 01 — Number Guessing Game (Beginner)
- Project 02 — Expense Tracker (Intermediate)
- Project 03 — Library Management System (Advanced)
- Project 04 — Real-time Weather CLI (Professional)
Happy Learning!
Made with ❤️ by Baraa
