Structures de Données

Programmation Orientée Objet
Développement
Découvrir et manipuler les collections de données essentielles : énumérations, structures, listes et dictionnaires.

En programmation, manipuler des variables isolées (age, nom, prix) devient très vite ingérable lorsque le volume d’informations augmente. Les structures de données permettent d’organiser, de regrouper et de stocker des collections de données de manière efficace.

🏷️ Les Énumérations (Enums)

Une énumération (Enum) est un type de donnée spécial utilisé pour définir un ensemble fixe et fermé de constantes nommées. Elle remplace les valeurs brutes magiques (comme 0, 1, 2 ou "admin", "user") qui risquent de créer des erreurs de frappe.

Pourquoi utiliser un Enum ?

Sans Enum (Déconseillé) :

statut_commande = 2  # Que signifie 2 ? Livré ? En cours ? Annulé ?
if statut_commande == "Livree":  # Erreur de frappe silencieuse !
    pass

Avec Enum (Recommandé) :

from enum import Enum

class StatutCommande(Enum):
    EN_ATTENTE = 1
    EN_COURS = 2
    LIVREE = 3
    ANNULEE = 4

statut = StatutCommande.EN_COURS
if statut == StatutCommande.LIVREE:
    print("Commande arrivée")
Avantages des Enums
  1. Sécurité de typage : Impossible d’affecter une valeur invalide non prévue.
  2. Auto-complétion : L’IDE suggère immédiatement les choix valides (StatutCommande.).
  3. Lisibilité : Le code s’explique lui-même sans avoir besoin de commentaires.

🧩 Regroupements Passifs : Structs & Tuples

Avant même de parler d’Orienté Objet avec des comportements complexes, on a souvent besoin de regrouper simplement des variables qui vont ensemble.

  • Tuple : Séquence ordonnée immuable de valeurs pouvant être de types différents (ex: coordonnees = (48.8566, 2.3522)).
  • Structure (Struct / Record / dataclass) : Conteneur de données passif avec des champs nommés, sans logique métier.
from dataclasses import dataclass

@dataclass
class Point2D:
    x: float
    y: float

# Création d'une structure simple
p1 = Point2D(x=10.5, y=20.0)
print(p1.x)  # Accès direct au champ

📚 Collections : Séquences & Dictionnaires

Les deux grandes familles de collections universelles sont les séquences ordonnées et les tables d’association clé-valeur.

Une liste (ou tableau dynamique) stocke des éléments dans un ordre séquentiel précis. Chaque élément est accessible via son index numérique (commençant généralement à 0).

fruits = ["Pomme", "Banane", "Orange"]
print(fruits[0])  # "Pomme"
fruits.append("Fraise")  # Ajoute à la fin

Un dictionnaire (ou table de hachage) associe une clé unique à une valeur. C’est la structure idéale pour retrouver instantanément une donnée sans parcourir toute la collection.

utilisateur = {
    "id": 101,
    "nom": "Alice",
    "role": "Administrateur"
}
print(utilisateur["nom"])  # "Alice"

Un ensemble (Set) est une collection non ordonnée d’éléments uniques. Tout doublon inséré est automatiquement ignoré.

tags = {"python", "poo", "python"}
print(tags)  # {'python', 'poo'} -> doublon supprimé !

📊 Explorateur Interactif de Données Structurées

Voici une illustration interactive d’un tableau d’objets structurés (données de démonstration d’outils) géré via la table dynamique aptitek :