🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_f8hc13gvic48gm22_333.py
Version 1.0.0
Date de création 19/03/2026
Auteur / Demandeur IA Générée (Modèle Gemini)
Objectif principal Simuler la création d’un projet urbain incluant des habitants et des infrastructures hôtelières, puis exporter les données.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script génère de manière aléatoire un scénario d’aménagement urbain. Il crée une population de citoyens avec des professions variées, définit un périmètre de projet (surface, densité, dates) et ajoute un hôtel. Les résultats sont calculés, affichés en console et sauvegardés dans un fichier texte structuré.
📌 Problème résolu
Il permet de modéliser rapidement des données de test ou des scénarios fictifs pour de la planification urbaine simplifiée, tout en automatisant le calcul de métriques clés comme la densité de population ou la durée de chantier.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.9+ (utilisation de typing.List, Optional, Path)
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI (Ligne de commande)
📦 Dépendances / Librairies
Librairies standard (built-in) :
random : Génération des données aléatoires.
datetime : Gestion des calendriers et durées.
logging : Journalisation des événements et erreurs.
pathlib : Manipulation robuste des chemins de fichiers.
typing : Typage statique des variables.
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données
Le script ne prend pas de fichier externe en entrée mais utilise des constantes internes (ex: liste PROFESSIONS).
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Chemin / Format Description
Log Console Suivi de l’exécution (INFO/ERROR).
Texte resultats_simulation.txt Rapport complet et lisible du projet urbain.
Dictionnaire Variable resultats Structure de données JSON-like retournée par simuler().
🧱 STRUCTURE DU SCRIPT
onizuka_f8hc13gvic48gm22_333.py
IMPORTS (logging, random, datetime, etc.)
CLASSES
Personne : Modèle de citoyen.
ProjetUrbain : Modèle de zone géographique et planning.
Hotel : Modèle d’infrastructure.
SimulateurUrbain : Orchestrateur de la logique métier.
FONCTIONS
main() : Point d’entrée.
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
Personne.to_dict() Aucun dict Sérialise l’objet pour l’export.
simuler() nombre_personnes: int dict Génère les objets, calcule les stats et lance la sauvegarde.
sauvegarder_resultats() resultats: dict None Écrit le rapport structuré dans le fichier de sortie.
🔄 LOGIQUE / ALGORITHME
Initialisation : Configuration du Logger et définition du nom du fichier de sortie.
Génération :
Instanciation de N objets Personne (noms et métiers aléatoires).
Instanciation d’un ProjetUrbain (calcul automatique de la date de fin entre 365 et 730 jours).
Instanciation d’un Hotel.
Traitement : Calcul de la densité (habitants/surface) et de la durée totale.
Export : Écriture ligne par ligne dans le fichier .txt avec gestion des erreurs via bloc try/except.
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Échec écriture disque IOError Log l’erreur et propage l’exception.
Erreur logique simulation Exception globale Capture l’erreur dans les logs avec message explicite.
Surface nulle (0) Division par zéro Géré via une condition dans la propriété densite_population.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : L’âge des personnes est compris entre 18 et 65 ans.
Règle 2 : La durée d’un projet est comprise entre 1 et 2 ans (365 à 730 jours).
Règle 3 : Le fichier de sortie est encodé en UTF-8 pour supporter les caractères accentués.
🧪 TESTS ATTENDUS
Cas nominal : Lancer le script et vérifier la présence de 15 personnes dans resultats_simulation.txt.
Robustesse : Vérifier que si la surface générée est très petite, la densité reste un nombre valide.
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_f8hc13gvic48gm22_333.py
📋 Exemple de sortie console attendue
Plaintext
2026-03-19 10:43:26,000 – INFO – Simulation terminée avec succès – 15 personnes générées
2026-03-19 10:43:26,001 – INFO – Résultats sauvegardés dans resultats_simulation.txt
=== STATISTIQUES DE LA SIMULATION ===
Nombre de personnes: 15
Densité de population: 450.5 hab/ha
Durée du projet: 512 jours
Hôtel: Hôtel_42



Avis
Il n’y a pas encore d’avis.