Skip to main content

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 import dans votre code
  • Installation via pip si 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'exercice
  • test : Effectue un test rapide de syntaxe
  • modules : Liste les modules Python populaires
  • quit : 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

  1. Fork le projet sur GitHub
  2. Créez une branche pour votre fonctionnalité
  3. Testez vos modifications avec plusieurs exercices
  4. Documentez les nouvelles fonctionnalités
  5. Soumettez une Pull Request avec description détaillée

📝 Licence

MIT License - voir le fichier LICENSE pour plus de détails.

🤝 Support et communauté

🏆 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

educode-1.1.0.tar.gz (43.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

educode-1.1.0-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

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

Hashes for educode-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9a0b258c0f06bebd6b8bdd43d2d54aae77deb1f2f8071dfdcd0b8c5d55167c7e
MD5 439d797614f364a1e9dc9de7acf9c4b0
BLAKE2b-256 c1e49a96fb87569b68cd6632f447222fff65de6806141fdc062a84388eb4a2b1

See more details on using hashes here.

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

Hashes for educode-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dddafbaa7abfc5f3d25b340828917feb01d485d86393502a8aca7d92615fff1e
MD5 53a2d81b37db32aeb62aa4ea428c11df
BLAKE2b-256 b46ef66e55675ff66374404406d55e802e10bc9cbbc0e562c9b866a8c6edc913

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page