Menu
Coddy logo textTech

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é ».

challenge icon

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) :

  1. Une variable age est définie et se voit attribuer une valeur à partir de l'entrée
  2. Une variable with_parent est définie et se voit attribuer une valeur booléenne — elle est True si l'entrée est "true", ou False si l'entrée est "false"
  3. Une variable message est 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 :

  1. Si l'âge est de 18 ans ou plus, définissez message sur "You can watch any movie".
  2. Si l'âge est inférieur à 18 ans :
    1. Si with_parent est True, définissez message sur "You can watch PG-13 movies".
    2. Si with_parent est False, définissez message sur "You can only watch G-rated movies".

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)
quiz iconTestez-vous

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