Écrire une condition lisible
Objectif : Classer une dépense selon son montant à l’aide de branches conditionnelles lisibles.
Une comparaison produit un résultat vrai ou faux, mais ce résultat ne décide pas encore de la suite du programme. Pour votre suivi de dépenses, vous voulez attribuer une catégorie de montant — petite, moyenne ou élevée — et afficher un message adapté. Les conditions Python permettent de choisir une branche selon les valeurs rencontrées.
Vous avez déjà vu les opérateurs de comparaison dans la leçon précédente. Ici, vous les placez dans une structure conditionnelle : Python évalue le test et exécute le bloc indenté qui lui correspond. Le classement proposé utilise le montant d’une dépense et le seuil de 20 euros déjà introduit.
Choisir une branche avec if, elif et else
Une instruction if ouvre une branche exécutée lorsque son test est vrai. Vous pouvez ajouter elif pour tester un autre cas, puis else pour traiter tous les cas restants. Les tests sont examinés dans l’ordre : dès qu’une branche convient, les autres branches de cette structure ne sont pas exécutées.
Dans l’exemple, une dépense de 18,50 euros est classée comme moyenne : elle n’est pas inférieure à 10 euros, mais elle ne dépasse pas 20 euros. Remplacez la valeur de montant pour observer les autres messages. Le dernier else couvre tous les montants qui n’ont pas satisfait les tests précédents.
# Exemples conservés des leçons précédentes
montant = 18.50
categorie = "alimentation"
montants = [18.50, 12.75, 42.00]
total = montant + 12.75
seuil = 20.00
depense = {
"montant": montant,
"categorie": categorie,
"description": "Courses"
}
depense["description"] = "Courses du week-end"
print("Suivi de dépenses")
print(f"Montant : {montant:.2f} €")
print(f"Catégorie : {categorie}")
print(f"Total des deux premières dépenses : {total:.2f} €")
print(f"Nombre de montants : {len(montants)}")
print(f"Première dépense : {montants[0]:.2f} €")
print(f"Description : {depense['description']}")
print(f"Montant supérieur au seuil : {montant > seuil}")
print(f"Catégorie différente de loisirs : {categorie != 'loisirs'}")
if montant < 10:
classement = "petite dépense"
elif montant <= seuil:
classement = "dépense moyenne"
else:
classement = "dépense élevée"
print(f"Classement : {classement}")Suivi de dépenses
Montant : 18.50 €
Catégorie : alimentation
Total des deux premières dépenses : 31.25 €
Nombre de montants : 3
Première dépense : 18.50 €
Description : Courses du week-end
Montant supérieur au seuil : False
Catégorie différente de loisirs : True
Classement : dépense moyenneCombiner des tests avec and et or
Vous pouvez réunir plusieurs tests dans une même condition. Avec and, tous les tests doivent être vrais pour que la condition soit satisfaite ; avec or, un seul test vrai suffit. Par exemple, vous pouvez signaler une dépense qui est à la fois dans la catégorie alimentation et supérieure à 20 euros, ou qui appartient à la catégorie loisirs.
if categorie == "alimentation" and montant > seuil:
print("Vérifiez cette dépense alimentaire élevée.")
if categorie == "loisirs" or montant > seuil:
print("Cette dépense mérite un contrôle.")Cette dépense mérite un contrôle.Dans le fichier complet, ces deux conditions peuvent être placées après le classement. Avec les valeurs actuelles, la première n’affiche rien : la catégorie est alimentation, mais le montant ne dépasse pas le seuil. La seconde affiche son message, car le montant dépasse 20 euros, même si la catégorie n’est pas loisirs.
À retenir
- Utilisez if pour traiter un premier cas, elif pour tester d’autres cas et else pour couvrir les cas restants.
- Les branches d’une même structure conditionnelle sont examinées dans l’ordre ; seule la première branche vérifiée est exécutée.
- Combinez des tests avec and lorsque tous doivent être vrais, ou avec or lorsqu’un seul test vrai suffit.
- Vérifiez l’ordre des seuils et le comportement aux valeurs limites pour éviter un classement inattendu.
Dans la prochaine leçon, vous pourrez appliquer une condition à chaque dépense en parcourant une collection.