A practical, example-driven Python repository designed to help you learn Python from fundamentals to advanced concepts through clear, runnable code.
Website: python-by-example-web
Each file is self-contained and focuses on a single concept, making the repository suitable for structured learning, revision, or reference.
- Overview
- Topics Covered
- Getting Started
- Prerequisites
- File Structure
- Learning Path
- Projects
- Contributing
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 — pytest discovers files named
test_*.py:pytest
| Requirement | Version | Notes |
|---|---|---|
| Python | 3.10+ | Minimum (match/case, list[str] / dict[str, int] syntax) |
# 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)
Bug reports and new examples are welcome. See CONTRIBUTING.md for setup, style, and testing guidelines.
GitHub Actions runs compileall and pytest on Python 3.10–3.12 for every push and pull request.
Happy Learning!
Made with ❤️ by Baraa