Que sont les instructions « else » et « elif » ?
Que se passe-t-il si vous souhaitez également que votre programme exécute un morceau de code lorsque votre expression de test est False
? Ou si vous souhaitez inclure une autre expression de test ? Python a d’autres mots clés que vous pouvez utiliser pour créer des instructions if
plus complexes comme else
et elif
. Lorsque vous utilisez if
, else
et elif
en les combinant, vous pouvez écrire des programmes complexes avec plusieurs instructions et expressions de test à exécuter.
Utiliser else
Lorsque vous utilisez une instruction if
, le corps du programme s’exécute uniquement si l’expression de test est True
. Pour ajouter du code à exécuter quand votre expression de test est False
, vous devez ajouter une instruction else
.
Adaptons un exemple de la section précédente :
a = 27
b = 93
if a >= b:
print(a)
Dans cet exemple, si a
n’est pas supérieur ou égal à b
, rien ne se passe. Supposons que vous souhaitiez plutôt afficher b
si l’expression de test est False
:
a = 27
b = 93
if a >= b:
print(a)
else:
print(b)
Sortie : 93
Si l’expression de test est False
, le code dans le corps de l’instruction if
est ignoré et le programme continue à s’exécuter à partir de l’instruction else
. La syntaxe d’une instruction if/else
est toujours ainsi :
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Utiliser elif
En Python, le mot clé elif
correspond à la forme raccourcie de else if. L’utilisation d’instructions elif
vous permet d’ajouter plusieurs expressions de test à votre programme. Ces instructions sont exécutées dans l’ordre dans lequel elles sont écrites. De cette façon, votre programme n’entrera une instruction elif
que si la première instruction if
est False
. Par exemple :
a = 27
b = 93
if a <= b:
print("a is less than or equal to b")
elif a == b:
print("a is equal to b")
Sortie : a is less than or equal to b
Dans cette variante, l’instruction elif
du bloc de code ne s’exécute pas, car l’instruction if
est True
.
La syntaxe d’une instruction if/elif
ressemble à ceci :
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
Combiner les instructions if
, elif
et else
Vous pouvez combiner les instructions if
, elif
et else
pour créer des programmes avec une logique conditionnelle complexe. N’oubliez pas qu’une instruction elif
est exécutée uniquement lorsque la condition if
est false
. Notez également qu’un bloc if
ne peut avoir qu’un seul bloc else
, mais qu’il peut avoir plusieurs blocs elif
.
Examinons un exemple avec une instruction if
, une instruction elif
et une instruction else
:
a = 27
b = 93
if a < b:
print("a is less than b")
elif a > b:
print("a is greater than b")
else:
print ("a is equal to b")
Un bloc de code qui utilise les trois types d’instructions aura la syntaxe suivante :
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Utiliser une logique conditionnelle imbriquée
Python prend également en charge la logique conditionnelle imbriquée, ce qui signifie que vous pouvez imbriquer des instructions if
, elif
et else
pour créer des programmes encore plus complexes. Pour imbriquer des conditions, mettez en retrait les conditions internes. De cette façon, tout ce qui se trouve au même niveau de mise en retrait sera exécuté dans le même bloc de code :
a = 16
b = 25
c = 27
if a > b:
if b > c:
print ("a is greater than b and b is greater than c")
else:
print ("a is greater than b and less than c")
elif a == b:
print ("a is equal to b")
else:
print ("a is less than b")
Ce morceau de code génère la sortie a is less than b
.
La logique conditionnelle imbriquée suit les mêmes règles que la logique conditionnelle normale au sein de chaque bloc de code. Voici un exemple de syntaxe :
if test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
else:
# statement(s) to be run