Système interactif de +200 exercices pour apprendre Python
Project description
🎓 EduCode - Apprendre Python par la pratique
EduCode est un système interactif de +200 exercices progressifs pour apprendre Python, avec correction automatique et suivi de progression.
✨ Fonctionnalités
- 200 exercices progressifs répartis en 3 niveaux (facile, moyen, difficile)
- Correction automatique avec tests unitaires intégrés
- Interface colorée avec codes ANSI pour une meilleure expérience utilisateur
- Suivi de progression personnel sauvegardé localement
- Exercices par catégorie et par difficulté
- Système d'indices et templates pour vous aider
- Installation automatique de modules Python externes
- Mode hors-ligne - fonctionne sans internet une fois installé
🚀 Installation
pip install educode
💻 Utilisation
Mode interactif (recommandé)
python -m educode
Commandes disponibles
python -m educode stats # Voir vos statistiques
python -m educode help # Aide
python -m educode version # Version
🎯 Menu principal
Lorsque vous lancez EduCode, vous accédez à un menu interactif coloré :
🎯 Menu Principal
─────────────────────────────────
1. 🎲 Exercice aléatoire
Choisir un exercice au hasard
2. 📈 Exercice par difficulté
Facile, Moyen ou Difficile
3. 📚 Exercice par catégorie
Fonctions, Listes, Algorithmes...
4. 📊 Mes statistiques
Voir votre progression
5. 🔄 Reprendre un exercice
Continuer où vous en étiez
6. 📦 Import module
Télécharger un module à utiliser
7. 👋 Quitter
Fermer EduCode
📚 Catégories d'exercices
🟢 Niveau Facile (50 exercices)
- Fonctions basiques : carré, maximum, calculatrice simple
- Chaînes de caractères : palindromes, comptage de caractères, formatage
- Listes basiques : somme, min/max, recherche d'éléments
- Boucles et conditions : factorielle, fibonacci, tables de multiplication
🟡 Niveau Moyen (50 exercices)
- Listes et algorithmes : tri, recherche binaire, permutations
- Dictionnaires : calcul de fréquences, fusion, filtrage
- Chaînes avancées : anagrammes, compression, expressions régulières
- Structures de données : piles, files, manipulation avancée
🔴 Niveau Difficile (100 exercices)
- Algorithmes complexes : QuickSort, MergeSort, algorithme de Dijkstra
- Structures de données avancées : arbres binaires, graphes
- Problèmes classiques : N-Reines, sac à dos, plus court chemin
🎯 Exemple d'utilisation
═══════════════════════════════════════════════════
🎓 Fonction carré
📚 Catégorie: Fonctions basiques
🔥 Difficulté: FACILE
─────────────────────────────────────────────────────
📝 Description:
Écrivez une fonction `carre(n)` qui retourne le carré d'un nombre.
💡 Template de solution:
def carre(n):
# Votre code ici
pass
✍️ Instructions:
• Écrivez votre solution ligne par ligne
• Appuyez sur Entrée avec une ligne vide pour tester
• Tapez hints pour des indices
• Tapez quit pour quitter
─────────────────────────────────────────────────────
1>>> def carre(n):
2... return n * n
3...
🧪 Tests en cours...
─────────────────────────────────────────────────────
Test 1: ✅ RÉUSSI
carre(2) = 4
Test 2: ✅ RÉUSSI
carre(0) = 0
Test 3: ✅ RÉUSSI
carre(-3) = 9
Test 4: ✅ RÉUSSI
carre(10) = 100
═══════════════════════════════════════════════════
🎉 FÉLICITATIONS ! 🎉
Score parfait: 4/4 tests réussis
═══════════════════════════════════════════════════
📊 Suivi de progression
EduCode sauvegarde automatiquement votre progression dans ~/.educode_progress.json :
Statistiques affichées
- 📚 Exercices total : nombre total d'exercices disponibles
- ✅ Exercices réussis : nombre d'exercices complétés avec succès
- 📊 Taux de complétion : pourcentage d'exercices terminés
- 🎯 Taux de réussite : ratio succès/tentatives
- 🔄 Tentatives total : nombre total de tentatives
Barre de progression visuelle
📈 Progression:
[██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 25.0%
Historique des succès
🏆 Derniers succès:
✨ Fonction carré (FACILE)
✨ Maximum de trois nombres (FACILE)
✨ Palindrome (MOYEN)
🔧 Fonctionnalités avancées
Gestion automatique des modules
EduCode peut installer automatiquement les modules Python nécessaires :
- Détection automatique des
importdans votre code - Installation via
pipsi le module n'est pas trouvé - Validation post-installation pour s'assurer que le module fonctionne
Commandes spéciales durant les exercices
hints: Affiche les indices de l'exercicetest: Effectue un test rapide de syntaxemodules: Liste les modules Python populairesquit: Quitte l'exercice actuel
Interface colorée
- Codes ANSI pour une interface terminal attrayante
- Détection automatique du support des couleurs
- Fallback vers du texte simple si les couleurs ne sont pas supportées
🛠 Structure technique
Architecture du projet
educode/
├── __init__.py # Point d'entrée du module
├── __main__.py # Exécution python -m educode
├── core.py # Logique principale et interface
└── exercises.py # Base de données des 100 exercices
Classes principales
Colors
Gère l'affichage coloré dans le terminal :
- Support des codes ANSI
- Détection automatique de la compatibilité terminal
- Méthodes utilitaires pour coloriser le texte
Exercise
Représente un exercice individuel :
- Métadonnées (titre, description, difficulté, catégorie)
- Cas de test avec entrées/sorties attendues
- Template de solution optionnel
- Système d'indices
EduCode
Classe principale du système :
- Gestion des exercices et de la progression
- Interface utilisateur interactive
- Système de test automatique
- Sauvegarde/chargement de la progression
Système de test
- Exécution isolée : chaque solution est testée dans un environnement temporaire
- Gestion des erreurs : capture et affichage des erreurs de syntaxe et d'exécution
- Comparaison intelligente : support des types complexes (pandas, numpy)
- Tolérance numérique : gestion des erreurs de précision flottante
🧪 Développement et contribution
Installation en mode développement
git clone https://github.com/educode-team/educode.git
cd educode
pip install -e .
Ajouter de nouveaux exercices
Les exercices sont définis dans exercises.py avec la structure :
Exercise(
id="unique_id",
title="Titre de l'exercice",
description="Description détaillée",
difficulty="facile|moyen|difficile",
category="Catégorie",
test_cases=[
{
"function": "nom_fonction",
"inputs": [param1, param2],
"expected": resultat_attendu
}
],
solution_template="def fonction():\n pass",
hints=["Indice 1", "Indice 2"]
)
Standards de contribution
- Fork le projet sur GitHub
- Créez une branche pour votre fonctionnalité
- Testez vos modifications avec plusieurs exercices
- Documentez les nouvelles fonctionnalités
- Soumettez une Pull Request avec description détaillée
📝 Licence
MIT License - voir le fichier LICENSE pour plus de détails.
🤝 Support et communauté
- 🐛 Rapporter des bugs : GitHub Issues
- 📖 Documentation complète : ReadTheDocs
- 💬 Discussions et aide : GitHub Discussions
- 🌟 Suggérer des améliorations : Feature Requests
🏆 Pourquoi choisir EduCode ?
✅ Avantages pédagogiques
- Apprentissage actif : pas de théorie passive, que de la pratique
- Feedback immédiat : correction instantanée de votre code
- Progression mesurable : statistiques détaillées de votre évolution
- Difficulté progressive : du niveau débutant à expert
✅ Avantages techniques
- Zero configuration : fonctionne immédiatement après installation
- Mode hors-ligne : apprenez sans connexion internet
- Multi-plateforme : Windows, macOS, Linux
- Installation automatique : gère les dépendances pour vous
✅ Avantages pratiques
- Interface intuitive : navigation simple et claire
- Sauvegarde automatique : reprenez où vous vous êtes arrêtés
- Exercices variés : couvre tous les aspects fondamentaux de Python
- Code source ouvert : transparent et améliorable par la communauté
🚀 Démarrage rapide
Prêt à commencer votre apprentissage Python ?
# Installation
pip install educode
# Lancement
python -m educode
# C'est parti ! 🎉
EduCode - Parce que la meilleure façon d'apprendre Python, c'est de coder ! 🐍
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file educode-1.1.0.tar.gz.
File metadata
- Download URL: educode-1.1.0.tar.gz
- Upload date:
- Size: 43.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a0b258c0f06bebd6b8bdd43d2d54aae77deb1f2f8071dfdcd0b8c5d55167c7e
|
|
| MD5 |
439d797614f364a1e9dc9de7acf9c4b0
|
|
| BLAKE2b-256 |
c1e49a96fb87569b68cd6632f447222fff65de6806141fdc062a84388eb4a2b1
|
File details
Details for the file educode-1.1.0-py3-none-any.whl.
File metadata
- Download URL: educode-1.1.0-py3-none-any.whl
- Upload date:
- Size: 42.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dddafbaa7abfc5f3d25b340828917feb01d485d86393502a8aca7d92615fff1e
|
|
| MD5 |
53a2d81b37db32aeb62aa4ea428c11df
|
|
| BLAKE2b-256 |
b46ef66e55675ff66374404406d55e802e10bc9cbbc0e562c9b866a8c6edc913
|