Pourquoi dictionnaires Python ?
Les dictionnaires sont une structure de données fondamentale en Python, utilisée pour stocker et manipuler des données clé-valeur. Ils offrent un accès rapide et efficace aux éléments grâce à leurs clés uniques. Un cas concret est la gestion des données utilisateur sur un site web : chaque utilisateur peut être représenté par un dictionnaire avec des informations comme son nom, son email et ses préférences.
Prerequis
- Connaissance de base de Python (variables, structures de contrôle)
- Installation de Python 3.x (https://www.python.org/downloads/)
Concepts fondamentaux
Création d'un Dictionnaire
Un dictionnaire est créé en utilisant des accolades {}. Les éléments sont ajoutés sous forme de clé-valeur.
mon_dico = {}
##
mon_dico = {'nom': 'Alice', 'age': 25, 'email': 'alice@example.com'}
Accès aux Éléments
Les éléments du dictionnaire sont accédés en utilisant leur clé.
age_alice = mon_dico['age']
print(age_alice) # Output: 25
## ##
Ajout et Modification d'Éléments
On peut ajouter de nouveaux éléments ou modifier les valeurs existantes en utilisant leur clé.
mon_dico['telephone'] = '123-456-7890'
##
mon_dico['age'] = 26
Suppression d'Éléments
On peut supprimer des éléments en utilisant del ou la méthode pop().
del mon_dico['email']
##
telephone_alice = mon_dico.pop('telephone')
Clés et Valeurs
On peut obtenir les clés et valeurs du dictionnaire en utilisant keys() et values().
les_clés = mon_dico.keys()
print(les_clés) # Output: dict_keys(['nom', 'age'])
##
les_valeurs = mon_dico.values()
print(les_valeurs) # Output: dict_values(['Alice', 26])
Itération sur un Dictionnaire
On peut itérer sur un dictionnaire pour accéder à ses clés et/ou valeurs.
for cle in mon_dico:
print(cle, mon_dico[cle])
##
for cle, valeur in mon_dico.items():
print(cle, valeur)
Mise en pratique : projet fil rouge
Mini-Projet : Gestionnaire de Tâches
Le but est de créer un simple gestionnaire de tâches qui permet d'ajouter, afficher et supprimer des tâches.
touch main.py
main.py
def ajouter_tache(taches, nom_tache):
"""Ajoute une nouvelle tâche au dictionnaire."""
if nom_tache in taches:
print(f"Tâche '{nom_tache}' déjà existe.")
else:
taches[nom_tache] = False
print(f"Tâche '{nom_tache}' ajoutée.")
def afficher_taches(taches):
"""Affiche toutes les tâches."""
if not taches:
print("Aucune tâche n'est enregistrée.")
else:
for nom_tache, etat in taches.items():
etat_str = "Terminée" if etat else "En cours"
print(f"{nom_tache}: {etat_str}")
def supprimer_tache(taches, nom_tache):
"""Supprime une tâche."""
if nom_tache not in taches:
print(f"Tâche '{nom_tache}' non trouvée.")
else:
del taches[nom_tache]
print(f"Tâche '{nom_tache}' supprimée.")
def main():
taches = {}
while True:
action = input("Quelle action voulez-vous effectuer? (ajouter, afficher, supprimer, quitter): ")
if action == 'ajouter':
nom_tache = input("Entrez le nom de la tâche à ajouter: ")
ajouter_tache(taches, nom_tache)
elif action == 'afficher':
afficher_taches(taches)
elif action == 'supprimer':
nom_tache = input("Entrez le nom de la tâche à supprimer: ")
supprimer_tache(taches, nom_tache)
elif action == 'quitter':
break
else:
print("Action non reconnue. Veuillez choisir une action valide.")
if __name__ == "__main__":
main()
Exécution du Projet
python main.py
Erreurs frequentes et debugging
KeyError : Lorsqu'on tente d'accéder à une clé qui n'existe pas.
# Mauvais valeur = mon_dico['non_existe'] # Correct valeur = mon_dico.get('non_existe', 'Valeur par défaut')TypeError : Lorsqu'on tente d'accéder à une clé avec un type incorrect.
# Mauvais valeur = mon_dico[123] # Si la clé n'est pas une chaîne de caractères # Correct valeur = mon_dico[str(123)]SyntaxError : Lorsqu'on tente d'utiliser un dictionnaire sans accolades.
# Mauvais mon_dico = 'nom': 'Alice', 'age': 25 # Correct mon_dico = {'nom': 'Alice', 'age': 25}
Pour aller plus loin
Dictionnaires imbriqués : Apprendre à stocker des dictionnaires dans des dictionnaires pour gérer des données complexes.
Méthodes utiles : Explorer les méthodes
copy(),fromkeys(), etupdate()pour manipuler les dictionnaires de manière plus efficace.Utiliser des dictionnaires comme des objets : En Python, les dictionnaires peuvent être utilisés comme des objets avec des méthodes et des propriétés personnalisées.
Défi Pratique
Créez un petit programme qui gère une bibliothèque. Chaque livre doit être représenté par un dictionnaire avec des informations comme le titre, l'auteur et le nombre d'exemplaires disponibles. Implémentez les fonctionnalités pour ajouter des livres, emprunter un livre, rendre un livre et afficher la liste des livres.