← Python intermédiaire
Leçon 10 / 10 — Chapitre 9: Mise en pratique : carnet de contacts
Cas pratique : un mini-carnet de contacts complet
Cette dernière leçon assemble les fonctions du chapitre en un petit programme cohérent, du chargement à l'export.
import csv
import re
def telephone_valide(numero):
return re.search(r"^[0-9]{10}$", numero) is not None
def ajouter_contact(carnet, nom, telephone):
nom = nom.strip()
if nom == "":
raise ValueError("Le nom ne peut pas etre vide")
if not telephone_valide(telephone):
raise ValueError("Numero de telephone invalide")
carnet.append({"nom": nom, "telephones": {"mobile": telephone}})
return carnet
def rechercher_contact(carnet, nom):
for contact in carnet:
if contact["nom"].lower() == nom.lower():
return contact
return None
carnet = []
ajouter_contact(carnet, "Amina", "0102030405")
try:
ajouter_contact(carnet, "Boubacar", "0607")
except ValueError as e:
print("Erreur :", e)
carnet_trie = sorted(carnet, key=lambda c: c["nom"].lower())
for contact in carnet_trie:
print(contact["nom"], ":", contact["telephones"]["mobile"])
Ce que fait chaque partie :
ajouter_contactcombine désormais deux validations : un nom non vide (vu dans ce chapitre) et un numéro conforme au motif regextelephone_valide(vu dans ce chapitre) — unValueErrorest levé si l'une des deux échoue.- Le second appel, avec un numéro trop court, déclenche l'erreur
Numero de telephone invalide, interceptée partry/exceptsans arrêter le programme. carnet_trieréutilise le tri par nom (vu dans ce chapitre) pour un affichage final ordonné.
Ce programme n'affiche donc que Erreur : Numero de telephone invalide, puis Amina : 0102030405 — Boubacar n'a jamais été ajouté au carnet, à cause du numéro invalide.
À vous de jouer : ajoutez un second contact valide au carnet, puis affichez le carnet trié complet avec les deux contacts.
🔒
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 85 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès