mirror of
https://github.com/blshaer/python-by-example.git
synced 2026-03-28 07:39:24 +01:00
256 lines
9.2 KiB
Markdown
256 lines
9.2 KiB
Markdown
<p align="center">
|
|
<img src="https://cdn.dribbble.com/userupload/46242920/file/bdbef935da688edfd85fcfeca75754a0.png?resize=1200x675&vertical=center"
|
|
alt="Python by Example"
|
|
width="100%">
|
|
</p>
|
|
|
|
# Python by Example
|
|
|
|
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.
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
- [Overview](#-overview)
|
|
- [Topics Covered](#-topics-covered)
|
|
- [Getting Started](#-getting-started)
|
|
- [Prerequisites](#-prerequisites)
|
|
- [File Structure](#-file-structure)
|
|
- [Learning Path](#-learning-path)
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
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
|
|
|
|
---
|
|
|
|
## Topics Covered
|
|
|
|
### 01. Basics
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_print.py`](./01_basics/01_print.py) | Print Function | Output, formatting, f-strings, escape characters |
|
|
| [`02_comments.py`](./01_basics/02_comments.py) | Comments | Single-line, multi-line, docstrings, best practices |
|
|
| [`03_variables.py`](./01_basics/03_variables.py) | Variables | Assignment, naming conventions, multiple assignment |
|
|
| [`04_data_types.py`](./01_basics/04_data_types.py) | Data Types | Numbers, strings, booleans, type conversion |
|
|
|
|
### 02. Control Flow
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_if_else.py`](./02_control_flow/01_if_else.py) | If/Else | Conditionals, comparison operators, logical operators |
|
|
| [`02_elif.py`](./02_control_flow/02_elif.py) | Elif | Multiple conditions, grading systems, ranges |
|
|
| [`03_match_case.py`](./02_control_flow/03_match_case.py) | Match/Case | Pattern matching (Python 3.10+), guards, unpacking |
|
|
|
|
### 03. Loops
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_for_loop.py`](./03_loops/01_for_loop.py) | For Loops | Iteration, range(), enumerate(), zip() |
|
|
| [`02_while_loop.py`](./03_loops/02_while_loop.py) | While Loops | Counters, sentinels, infinite loops |
|
|
| [`03_break_continue.py`](./03_loops/03_break_continue.py) | Loop Control | break, continue, pass, for-else |
|
|
|
|
### 04. Data Structures
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_lists.py`](./04_data_structures/01_lists.py) | Lists | Indexing, slicing, methods, comprehensions |
|
|
| [`02_tuples.py`](./04_data_structures/02_tuples.py) | Tuples | Immutability, unpacking, named tuples |
|
|
| [`03_sets.py`](./04_data_structures/03_sets.py) | Sets | Operations, frozen sets, practical uses |
|
|
| [`04_dictionaries.py`](./04_data_structures/04_dictionaries.py) | Dictionaries | Methods, nesting, comprehensions |
|
|
|
|
### 05. Functions
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_function_basics.py`](./05_functions/01_function_basics.py) | Function Basics | Defining functions, scope, docstrings |
|
|
| [`02_arguments.py`](./05_functions/02_arguments.py) | Arguments | Positional, keyword, *args, **kwargs, type hints |
|
|
| [`03_return_values.py`](./05_functions/03_return_values.py) | Return Values | Multiple returns, early returns, generators |
|
|
| [`04_lambda_functions.py`](./05_functions/04_lambda_functions.py) | Lambda | Anonymous functions, map, filter, reduce |
|
|
|
|
### 06. Modules & Packages
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_imports.py`](./06_modules_packages/01_imports.py) | Imports | Import patterns, standard library, organization |
|
|
| [`02_custom_modules.py`](./06_modules_packages/02_custom_modules.py) | Custom Modules | Creating modules, packages, `__init__.py` |
|
|
|
|
### 07. Error Handling
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_try_except.py`](./07_error_handling/01_try_except.py) | Try/Except | Exception handling, else, finally |
|
|
| [`02_custom_exceptions.py`](./07_error_handling/02_custom_exceptions.py) | Custom Exceptions | Creating exceptions, hierarchy, best practices |
|
|
|
|
### 08. Object-Oriented Programming
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_classes_objects.py`](./08_oop/01_classes_objects.py) | Classes & Objects | Attributes, methods, self |
|
|
| [`02_init_methods.py`](./08_oop/02_init_methods.py) | Init & Methods | Constructors, properties, classmethods |
|
|
| [`03_inheritance.py`](./08_oop/03_inheritance.py) | Inheritance | Single/multiple inheritance, super(), MRO |
|
|
| [`04_polymorphism.py`](./08_oop/04_polymorphism.py) | Polymorphism | Duck typing, operator overloading, protocols |
|
|
|
|
### 09. Advanced Python
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_list_comprehensions.py`](./09_advanced_python/01_list_comprehensions.py) | Comprehensions | List, dict, set comprehensions |
|
|
| [`02_generators.py`](./09_advanced_python/02_generators.py) | Generators | Yield, iterators, memory efficiency |
|
|
| [`03_decorators.py`](./09_advanced_python/03_decorators.py) | Decorators | Simple/parameterized decorators, functools |
|
|
| [`04_context_managers.py`](./09_advanced_python/04_context_managers.py) | Context Managers | with statement, `__enter__`/`__exit__`, contextlib |
|
|
|
|
### 10. Best Practices
|
|
| File | Topic | Description |
|
|
|:-----|:------|:------------|
|
|
| [`01_pep8.py`](./10_best_practices/01_pep8.py) | PEP 8 | Python style guide, naming, formatting |
|
|
| [`02_type_hinting.py`](./10_best_practices/02_type_hinting.py) | Type Hinting | Type annotations, typing module, generics |
|
|
| [`03_virtual_envs.py`](./10_best_practices/03_virtual_envs.py) | Virtual Environments | venv, pip, requirements.txt |
|
|
|
|
---
|
|
|
|
## Getting Started
|
|
|
|
1. **Clone the repository**
|
|
```bash
|
|
git clone https://github.com/blshaer/python_review.git
|
|
cd python_review
|
|
```
|
|
|
|
2. **Start from basics**
|
|
```bash
|
|
cd 01_basics
|
|
python 01_print.py
|
|
```
|
|
|
|
3. **Read the comments** — Each section is thoroughly explained
|
|
|
|
4. **Experiment** — Modify the code and observe the results
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
| Requirement | Version | Notes |
|
|
|:------------|:--------|:------|
|
|
| Python | 3.10+ | Recommended (for match/case support) |
|
|
| Python | 3.8+ | Minimum (for most features) |
|
|
|
|
```bash
|
|
# Check your Python version
|
|
python --version
|
|
```
|
|
|
|
---
|
|
|
|
## File Structure
|
|
|
|
Each Python file follows a consistent structure:
|
|
|
|
```python
|
|
"""
|
|
================================================================================
|
|
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 ...
|
|
```
|
|
|
|
---
|
|
|
|
## Learning Path
|
|
|
|
<table>
|
|
<tr>
|
|
<td align="center"><strong>🌱 Beginner</strong></td>
|
|
<td align="center"><strong>📈 Intermediate</strong></td>
|
|
<td align="center"><strong>🚀 Advanced</strong></td>
|
|
<td align="center"><strong>💼 Professional</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
|
|
1. [Basics](./01_basics/)
|
|
2. [Control Flow](./02_control_flow/)
|
|
3. [Loops](./03_loops/)
|
|
|
|
</td>
|
|
<td>
|
|
|
|
4. [Data Structures](./04_data_structures/)
|
|
5. [Functions](./05_functions/)
|
|
6. [Modules](./06_modules_packages/)
|
|
|
|
</td>
|
|
<td>
|
|
|
|
7. [Error Handling](./07_error_handling/)
|
|
8. [OOP](./08_oop/)
|
|
9. [Advanced Python](./09_advanced_python/)
|
|
|
|
</td>
|
|
<td>
|
|
|
|
10. [Best Practices](./10_best_practices/)
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
```
|
|
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
|
|
```
|
|
|
|
---
|
|
|
|
## Progress Tracker
|
|
|
|
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
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
<strong>Happy Learning!</strong>
|
|
</p>
|
|
|
|
<p align="center">
|
|
Made with ❤️ by <a href="https://github.com/blshaer">Baraa</a>
|
|
</p>
|