Python au lycée (2) : Les instructions conditionnelles Méthode

Enchaîner plusieurs cas avec if … elif … else

Durée estimée
5 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Méthode

Pour traiter plus de deux cas avec if … elif … else :

  1. Écrire le premier test avec if condition1 : et son bloc indenté.
  2. Ajouter autant de elif que nécessaire pour les cas intermédiaires : elif condition2 :, puis elif condition3 :, etc.
  3. Terminer par else : (sans condition) pour traiter tous les autres cas.
  4. Ne pas oublier les deux-points à la fin de chaque ligne et l'indentation de chaque bloc.

Python teste les conditions dans l'ordre : dès qu'une condition est vraie, le bloc correspondant est exécuté et toutes les conditions suivantes sont ignorées. Il faut donc ranger les cas du plus restrictif au plus général.

Mention au bac

On veut afficher la mention obtenue selon la note :

note = float(input("Moyenne du bac : "))
if note >= 16 :
    print("Mention Très Bien")
elif note >= 14 :
    print("Mention Bien")
elif note >= 12 :
    print("Mention Assez Bien")
elif note >= 10 :
    print("Admis")
else :
    print("Refusé")

Étape 1 : Python teste d'abord note >= 16. Si c'est vrai, affichage « Très Bien » et le programme sort du bloc.

Étape 2 : Sinon, il teste note >= 14. À ce stade on sait déjà que note < 16, donc si la condition est vraie, la note est dans [14 ; 16[.

Étape 3 : Et ainsi de suite. Si aucune condition n'est vérifiée, le else s'applique : « Refusé ».

Pour note = 13.5 : le programme affiche « Mention Assez Bien ».

Signe d'un nombre

On veut afficher si un nombre est positif, négatif ou nul :

x = float(input("Entrez un nombre : "))
if x > 0 :
    print("x est strictement positif.")
elif x < 0 :
    print("x est strictement négatif.")
else :
    print("x est nul.")

Étape 1 : Test $x > 0$ : si vrai, affichage « strictement positif ».

Étape 2 : Sinon, test $x < 0$ : si vrai, affichage « strictement négatif ».

Étape 3 : Si aucun des deux tests n'est vérifié, c'est que $x = 0$ : le else affiche « nul ».

Remarque

L'ordre des tests est essentiel. Dans l'exemple de la mention, si on écrivait if note >= 10 en premier, toutes les notes $\geqslant 16$ passeraient par ce test et afficheraient « Admis », sans jamais atteindre les cas des mentions.

Attention

Différence entre plusieurs if indépendants et une structure if … elif :

  • Avec plusieurs if séparés : chaque condition est testée, plusieurs blocs peuvent s'exécuter.
  • Avec if … elif … else : un seul bloc est exécuté, Python s'arrête à la première condition vraie.

Pour s'entraîner