République Islamique de Mauritanie
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Institut Supérieur du Numérique
Évaluation Python
À compléter entre le 16/05/2025 et le 18/05/2025 via le formulaire de dépôt
Tous les fichiers doivent être compressés dans une archive nommée : matricule.zip
Mini-Projet Python –Titre : Analyseur intelligent de comptes utilisateurs
Objectif général :
Créer une application Python orientée objet capable de :
• Lire un fichier Excel contenant des comptes utilisateurs (corrects ou incorrects)
• Valider les données : email, âge, score…
• Enregistrer les comptes valides dans une structure optimisée
• Détecter les comptes incorrects (email invalide ou champ manquant) et les enregistrer
dans un autre fichier Excel
• Générer des statistiques de base
Structure du Fichier d'entrée fourni : comptes.xlsx
nom email age score statut
Karim 19 75.0 actif
Tâches à réaliser dans le script :
1. Classe Utilisateur (POO)
• Attributs : nom, email, âge, score, statut
• Méthode de classe : from_excel_row(row) qui :
o Valide les champs
o Lève une exception personnalisée CompteInvalideError si problème
• Méthode : __str__ pour affichage lisible
2. Lecture du fichier Excel
• Utiliser pandas.read_excel() pour lire le fichier
• Utiliser un générateur pour créer les objets Utilisateur
• Traiter chaque ligne avec try/except
o Si ligne valide : ajouter à la liste des comptes valides
o Si ligne invalide : capturer l'erreur et ajouter à la liste des comptes rejetés
3. Décorateurs
• Utiliser un décorateur @journaliser pour logguer chaque appel de fonction principale
4. Sauvegarde des résultats
• Enregistrer :
o comptes_valides.xlsx avec les bons utilisateurs
o comptes_rejetes.xlsx avec les lignes invalides + message d’erreur
5. Analyse des comptes valides
• Nombre de comptes actifs / inactifs
• Moyenne des scores
• Liste des emails uniques
• Utiliser map, filter, sorted, len, etc.
6. Analyse de complexité dans README
Format de rendu :
• main.py → traitement principal
• utilisateur.py → classe Utilisateur
• utils.py → décorateur, fonctions d'analyse
• comptes.xlsx → fichier d’entrée
• comptes_valides.xlsx & comptes_rejetes.xlsx → fichiers générés
• README.md → explication, complexité, structure, choix techniques