action
action1
else:
action2
action1
elif Q:
action2
else:
action3
if Q:
action1
else:
action2
Imbrication : Structure où une condition est placée à l'intérieur d'une autre.
- Évaluer la condition externe en premier
- Si vraie, évaluer la condition interne
- Exécuter le bloc correspondant
permis = True
if age >= 18:
if permis:
print("Peut conduire")
else:
print("N'a pas le permis")
else:
print("Trop jeune")
age >= 18 avec age = 18 → 18 >= 18 → VRAI
permis avec permis = True → VRAI
Le bloc "Peut conduire" s'exécute
Le message "Peut conduire" sera affiché
• Hiérarchie : La condition interne n'est évaluée que si la condition externe est vraie
• Indentation : Indique l'appartenance à un bloc
• Flux d'exécution : Suit l'arborescence des conditions
Évaluation séquentielle : Les conditions sont évaluées dans l'ordre d'imbrication.
b = 5
if a > 8:
if b < 6:
result = "Les deux conditions sont vraies"
else:
result = "a > 8 mais b >= 6"
else:
result = "a <= 8"
print(result)
a > 8 avec a = 10 → 10 > 8 → VRAI
b < 6 avec b = 5 → 5 < 6 → VRAI
Le bloc interne s'exécute car les deux conditions sont vraies
Le message "Les deux conditions sont vraies" sera affiché
• Ordre d'évaluation : Externe d'abord, puis interne
• Logique : Les conditions internes ne sont testées que si externes sont vraies
• Contrôle de flux : Dirige le programme selon les valeurs des variables
Chemins alternatifs : Différents blocs peuvent s'exécuter selon les conditions.
y = 7
if x > 5:
if y > 5:
result = "x et y sont grands"
else:
result = "x est grand, y est petit"
else:
if y > 5:
result = "x est petit, y est grand"
else:
result = "x et y sont petits"
print(result)
x > 5 avec x = 3 → 3 > 5 → FAUX
On entre dans le bloc else
y > 5 avec y = 7 → 7 > 5 → VRAI
"x est petit, y est grand" s'affiche
Le message "x est petit, y est grand" sera affiché
• Évaluation alternative : Si la condition principale est fausse, on passe au else
• Structure arborescente : Chaque branche peut contenir ses propres conditions
• Complétude : Tous les cas possibles sont couverts
Conditions multiples : Plusieurs critères pour une décision.
soleil = True
if temp > 20:
if soleil:
activite = "Sortie possible, temps agréable"
else:
activite = "Température bonne mais nuageux"
else:
if soleil:
activite = "Soleil mais froid"
else:
activite = "Temps désagréable"
print(activite)
temp > 20 avec temp = 25 → 25 > 20 → VRAI
soleil avec soleil = True → VRAI
"Sortie possible, temps agréable" s'affiche
Le message "Sortie possible, temps agréable" sera affiché
• Combinaison de critères : Plusieurs variables influencent la décision
• Logique combinée : Les conditions internes dépendent des externes
• Prise de décision : Basée sur plusieurs facteurs
Évaluation conditionnelle : Décision basée sur des seuils.
coef = 2
if note >= 10:
if note >= 16:
mention = "Très bien"
elif note >= 14:
mention = "Bien"
else:
mention = "Passable"
else:
mention = "Insuffisant"
print(f"Mention: {mention}")
note >= 10 avec note = 14 → 14 >= 10 → VRAI
note >= 16 avec note = 14 → 14 >= 16 → FAUX
note >= 14 avec note = 14 → 14 >= 14 → VRAI
Le bloc "Bien" s'exécute
Le message "Mention: Bien" sera affiché
• Échelonnement : Les seuils sont évalués dans l'ordre décroissant
• Évaluation exclusive : Un seul bloc est exécuté dans une structure if-elif-else
• Hiérarchie des mentions : Les mentions supérieures excluent les inférieures
Complexité croissante : Plus de variables augmente les combinaisons possibles.
b = 8
c = 12
if a > 10:
if b > 5:
if c > 10:
result = "Tous supérieurs aux seuils"
else:
result = "a et b OK, c non"
else:
result = "a OK, b non"
else:
result = "a non OK"
print(result)
a > 10 avec a = 15 → 15 > 10 → VRAI
b > 5 avec b = 8 → 8 > 5 → VRAI
c > 10 avec c = 12 → 12 > 10 → VRAI
Le bloc le plus interne s'exécute
Le message "Tous supérieurs aux seuils" sera affiché
• Imbrication profonde : Trois niveaux de conditions
• Évaluation séquentielle : Du plus externe au plus interne
• Logique hiérarchique : Chaque niveau dépend du précédent
Nombres négatifs : Traitement spécial des valeurs inférieures à zéro.
y = 4
if x < 0:
if y > 0:
result = "x négatif, y positif"
else:
result = "x et y négatifs"
else:
if y > 0:
result = "x et y positifs"
else:
result = "x positif, y négatif"
print(result)
x < 0 avec x = -2 → -2 < 0 → VRAI
y > 0 avec y = 4 → 4 > 0 → VRAI
Le bloc "x négatif, y positif" s'exécute
Le message "x négatif, y positif" sera affiché
• Signe des nombres : Traitement différent pour positifs/négatifs
• Classification : Catégorisation basée sur le signe
• Logique de classification : Plusieurs critères pour classer les données
Horaires conditionnels : Ouverture dépend de plusieurs critères.
weekend = False
if not weekend:
if 9 <= heure <= 18:
etat_magasin = "Ouvert"
else:
etat_magasin = "Fermé (hors horaires)"
else:
if 10 <= heure <= 17:
etat_magasin = "Ouvert (weekend)"
else:
etat_magasin = "Fermé (weekend hors horaires)"
print(etat_magasin)
not weekend avec weekend = False → not False → VRAI
9 <= heure <= 18 avec heure = 14 → 9 <= 14 <= 18 → VRAI
Le magasin est "Ouvert"
Le message "Ouvert" sera affiché
• Logique temporelle : Différents horaires selon les jours
• Intervalle : Utilisation d'intervalles pour les heures
• Logique métier : Règles spécifiques à un contexte
Structures complexes : Combinaison d'imbrication et de structures alternatives.
b = 3
c = 9
if a > 5:
if b > 5:
result = "a et b > 5"
elif c > 5:
result = "a > 5 et c > 5"
else:
result = "seulement a > 5"
else:
if b > 5:
result = "seulement b > 5"
elif c > 5:
result = "seulement c > 5"
else:
result = "aucun > 5"
print(result)
a > 5 avec a = 7 → 7 > 5 → VRAI
b > 5 avec b = 3 → 3 > 5 → FAUX
c > 5 avec c = 9 → 9 > 5 → VRAI
Le bloc "a > 5 et c > 5" s'exécute
Le message "a > 5 et c > 5" sera affiché
• Combinaison : Imbrication + structures alternatives
• Évaluation exclusive : Dans chaque ensemble if-elif-else, un seul bloc s'exécute
• Logique combinatoire : Plusieurs critères combinés pour la décision
Imbrication maximale : Trois niveaux de conditions imbriquées.
y = 8
z = 3
if x > 4:
print("Niveau 1: x > 4")
if y > 6:
print("Niveau 2: y > 6")
if z > 2:
result = "Toutes les conditions vraies"
print("Niveau 3: z > 2")
else:
result = "x > 4 et y > 6 mais z <= 2"
else:
result = "x > 4 mais y <= 6"
else:
result = "x <= 4"
print(result)
x > 4 avec x = 5 → 5 > 4 → VRAI
y > 6 avec y = 8 → 8 > 6 → VRAI
z > 2 avec z = 3 → 3 > 2 → VRAI
Tous les messages s'affichent, le résultat est "Toutes les conditions vraies"
Les messages "Niveau 1: x > 4", "Niveau 2: y > 6", "Niveau 3: z > 2" et "Toutes les conditions vraies" seront affichés
• Profondeur maximale : Trois niveaux d'imbrication
• Flux d'exécution : Suit l'arborescence des conditions
• Logique hiérarchique : Chaque niveau dépend du précédent