If - Else imbriqués
Fait partie de la section Fundamentals du Journey Python de Coddy — leçon 23 sur 77.
Les instructions If-Else imbriquées vous permettent de vérifier plusieurs conditions en plaçant une instruction if-else à l'intérieur d'une autre. Vous pouvez imbriquer un bloc if à l'intérieur d'un bloc else — c'est un modèle courant et valide en Python.
Créez une instruction if-else de base :
age = 18
title = "None"
if age >= 18:
title = "Adult"
else:
title = "Minor"Ajoutons maintenant une condition imbriquée à l'intérieur du bloc else :
age = 18
title = "None"
allowed_to_drink = False
if age >= 18:
title = "Adult"
else:
title = "Minor"
if age >= 13:
title = "Teenager"
else:
title = "Child"Vous pouvez également imbriquer une condition à l'intérieur du bloc if :
age = 25
title = "None"
allowed_to_drink = False
if age >= 18:
title = "Adult"
if age >= 21:
allowed_to_drink = True
else:
allowed_to_drink = False
else:
title = "Minor"Dans les deux exemples, le if-else interne ne s'exécute que lorsque la condition externe qui le contient est remplie. Placer une instruction if à l'intérieur d'un bloc else (ou à l'intérieur d'un bloc if) est tout à fait valide — c'est précisément ce qui le rend « imbriqué ».
Défi
DébutantÉcrivez un programme qui détermine l'éligibilité pour un film en fonction de l'âge et de l'accompagnement parental.
Code donné (ne pas modifier) :
- Une variable
ageest définie et se voit attribuer une valeur à partir de l'entrée - Une variable
with_parentest définie et se voit attribuer une valeur booléenne — elle estTruesi l'entrée est"true", ouFalsesi l'entrée est"false" - Une variable
messageest définie avec la valeur"None"
Votre tâche :
Utilisez des instructions if-else imbriquées pour définir la variable message sur l'une des chaînes suivantes :
- Si l'âge est de 18 ans ou plus, définissez
messagesur"You can watch any movie". - Si l'âge est inférieur à 18 ans :
- Si
with_parentestTrue, définissezmessagesur"You can watch PG-13 movies". - Si
with_parentestFalse, définissezmessagesur"You can only watch G-rated movies".
- Si
Important : Comme with_parent est déjà un booléen, vérifiez-le directement (par exemple, if with_parent:) — ne le comparez pas à une chaîne de caractères comme "true" ou "True".
Important : Les chaînes de caractères doivent correspondre exactement — y compris la capitalisation et la ponctuation. Par exemple, utilisez "PG-13 movies" (avec un 'm' minuscule), et non "PG-13 Movies".
Aide-mémoire
Les instructions if-elif-else imbriquées permettent une prise de décision hiérarchique :
if condition1:
if condition2:
# Code pour quand les deux conditions sont vraies
else:
# Code pour quand condition1 est vraie mais condition2 est fausse
else:
# Code pour quand condition1 est fausse
Exemple de conditions imbriquées :
if age > 18:
if has_license:
print("You can drive")
else:
print("Get a license first")
else:
print("Too young to drive")L'imbrication peut être infinie, permettant des arbres de décision complexes :
if condition1:
if condition2:
if condition3:
# Plus de conditions imbriquées...
Essayez vous-même
# Obtenir l'âge sous forme d'entier
age = int(input())
# Obtenir l'accord parental sous forme de booléen (True/False)
with_parent = input() == "true"
# Déclarer une variable nommée message avec "None"
message = "None"
# Écrivez votre code if-else imbriqué ici
# Ne rien changer en dessous de cette ligne
print(message)Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage d'addition
Message de bienvenueSaisie des données10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables
NombresChaînes de caractèresBooléensConventions de nommageVariables videsRécapitulatif - Initialiser des variables8Boucles
Boucle ForBoucle WhileBreakContinueRécapitulatif - FactorielleLa fonction RangeBoucles imbriquéesRécapitulatif - Saisie dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6E/S de base
SortieSortie avec des variablesEntréeCastRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArgumentsRetourner une valeurRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut