Structures de contrôle
Jusqu'à présent, nos programmes s'exécutaient de manière linéaire, instruction après instruction. Dans la réalité, un programme doit souvent :
| Besoin | Mécanisme Python | Mots-clés |
|---|---|---|
| Prendre des décisions | Structures conditionnelles | if, elif, else |
| Répéter des actions | Boucles | for, while |
Structures conditionnelles
L'instruction if est la structure de prise de décision fondamentale en Python. Elle permet d'exécuter un bloc d'instructions seulement si une condition est vraie.
Structure if simple
if condition:
# bloc exécuté uniquement si condition est True
instruction_1
instruction_2
# suite du programme (toujours exécutée)True, le bloc indenté est exécuté. Sinon, il est ignoré et l'exécution continue après le bloc.Exemple n°1 — Division sécurisée
a = int(input("Saisir le 1er nombre : "))
b = int(input("Saisir le 2ème nombre : "))
if b != 0:
print(f"{a} / {b} = {a / b:.4f}")
print("fin du programme")Saisir le 1er nombre : 3 Saisir le 2ème nombre : 4 3 / 4 = 0.7500 fin du programme
Structure if...else
if condition:
# bloc 1 — exécuté si condition est True
...
else:
# bloc 2 — exécuté si condition est False
...
# suite du programmeExemple n°2 — Division avec gestion d'erreur
a = int(input("Saisir le 1er nombre : "))
b = int(input("Saisir le 2ème nombre : "))
if b != 0:
print(f"{a} / {b} = {a / b:.4f}")
else:
print("Erreur : division par zéro impossible !")Saisir le 1er nombre : 3 Saisir le 2ème nombre : 0 Erreur : division par zéro impossible !
Structure if...elif...else
Lorsqu'il y a plus de deux cas à traiter, on utilise elif (contraction de else if). Python évalue les conditions dans l'ordre et exécute le premier bloc dont la condition est vraie.
if condition_1:
bloc_1
elif condition_2:
bloc_2
elif condition_3:
bloc_3
...
else:
bloc_par_défaut # exécuté si aucune condition n'est vraieelif et else suivants sont ignorés. Un seul bloc est exécuté au maximum.Exemple n°3 — Signe d'un nombre
a = int(input("Saisir un nombre : "))
if a > 0:
print(f"{a} est positif")
elif a < 0:
print(f"{a} est négatif")
else:
print(f"{a} est nul")Saisir un nombre : 0 0 est nul
Exemple n°4 — Mention selon la note
note = float(input("Saisir une note (0-20) : "))
if note >= 16:
mention = "Très bien"
elif note >= 14:
mention = "Bien"
elif note >= 12:
mention = "Assez bien"
elif note >= 10:
mention = "Passable"
else:
mention = "Insuffisant"
print(f"Note : {note:.1f}/20 → Mention : {mention}")Saisir une note (0-20) : 15.5 Note : 15.5/20 → Mention : Bien
Opérateur ternaire (expression conditionnelle)
L'opérateur ternaire permet d'écrire un if...else simple sur une seule ligne. Il retourne une valeur selon la condition, ce qui le rend très utile dans les affectations.
valeur_si_vrai if condition else valeur_si_fauxExemple n°5 — Parité d'un nombre
a = int(input("Saisir un nombre : "))
parite = "Pair" if a % 2 == 0 else "Impair"
print(f"{a} est {parite}")Saisir un nombre : 3 3 est Impair
Exemple n°6 — Usages courants de l'opérateur ternaire
x = 7
# Valeur absolue
abs_x = x if x >= 0 else -x
print(f"|{x}| = {abs_x}")
# Maximum de deux valeurs
a, b = 12, 9
maxi = a if a >= b else b
print(f"max({a}, {b}) = {maxi}")
# Affichage conditionnel dans une f-string
score = 85
print(f"Résultat : {'Admis' if score >= 50 else 'Refusé'}")|7| = 7 max(12, 9) = 12 Résultat : Admis
# ✅ Lisible — cas simple
label = "zéro" if n == 0 else "non nul"
# ❌ Trop complexe — préférer if...elif...else classique
res = "A" if n>90 else "B" if n>75 else "C" if n>60 else "D"Structures if...else imbriquées
Il est possible de placer une structure conditionnelle à l'intérieur d'une autre pour gérer des cas avec plusieurs niveaux de vérification.
if condition_1:
if condition_2:
bloc_1_1 # condition_1 ET condition_2 vraies
else:
bloc_1_2 # condition_1 vraie, condition_2 fausse
else:
bloc_2 # condition_1 fausseelif ou restructurer la logique avec des opérateurs logiques (and, or).Exemple n°7 — Maximum de trois nombres
a = float(input("Entrez le 1er nombre : "))
b = float(input("Entrez le 2ème nombre : "))
c = float(input("Entrez le 3ème nombre : "))
if a >= b:
if a >= c:
maximum = a
else:
maximum = c
else:
if b >= c:
maximum = b
else:
maximum = c
print(f"Le plus grand nombre est : {maximum}")Entrez le 1er nombre : 5 Entrez le 2ème nombre : 7 Entrez le 3ème nombre : 2 Le plus grand nombre est : 7.0
# Avec opérateurs logiques (plus lisible)
if a >= b and a >= c:
maximum = a
elif b >= c:
maximum = b
else:
maximum = c
# Avec la fonction intégrée max() (le plus concis)
maximum = max(a, b, c)Récapitulatif des structures conditionnelles
| Structure | Cas d'usage | Blocs exécutés |
|---|---|---|
if | Une seule condition à vérifier | 0 ou 1 |
if...else | Deux cas mutuellement exclusifs | Exactement 1 |
if...elif...else | Plusieurs cas mutuellement exclusifs | Exactement 1 |
| Opérateur ternaire | Affectation ou affichage conditionnel simple | Exactement 1 valeur |
if imbriqués | Conditions à plusieurs niveaux | Dépend des niveaux |
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.