Aller au contenu

Instructions conditionnelles

Les instructions conditionnelles permettent de sélectionner le bloc d'instructions à exécuter selon la valeur d'une expression booléenne.

L'instruction if

La syntaxe de l'instruction if est :

if expression:
    bloc_instructions_1
bloc_instructions_2
expression a pour valeur True ou False. Il s'agit de l'expression de la clause if.

Si expression a pour valeur True, le bloc bloc_instructions_1 est exécuté, sinon, il est ignoré.
Dans tous les cas, si le bloc bloc_instructions_2 existe, il est exécuté ensuite.

Exemple : l'expression de la clause if a pour valeur True

nb = 17 
if nb % 2 != 0:
    nb = nb * 2
print(nb, "est un nombre pair")
34 est un nombre pair

nb % 2 != 0 est une expression qui vaut True lorsque nb vaut 17. L'instruction nb = nb * 2 est exécutée, ce qui affecte à nb la valeur 34.

Exemple : l'expression de la clause if a pour valeur False

nb = 18 
if nb % 2 != 0:
    nb = nb * 2
print(nb, "est un nombre pair")
18 est un nombre pair

nb % 2 != 0 est une expression qui vaut False lorsque nb vaut 18. L'instruction nb = nb * 2 est ignorée et la valeur de nb n'est pas modifiée.

L'instruction if … else

La syntaxe de l'instruction if … else est :

if expression:
    bloc_instructions_1
else : 
    bloc_instructions_2
bloc_instructions_3
expression a pour valeur True ou False.

  • Lorsque expression a pour valeur True, le bloc bloc_instructions_1 est exécuté, et le bloc bloc_instructions_2 est ignoré.
  • Lorsque expression a pour valeur False, le bloc bloc_instructions_1 est ignoré, et le bloc bloc_instructions_2 est exécuté.

On exécute donc soit le bloc bloc_instructions_1, soit le bloc bloc_instructions_2, mais jamais les 2.

  • Dans tous les cas, si le bloc bloc_instructions_3 existe, il est exécuté ensuite.

Exemple :

nb = 5  
if nb % 2 == 0:
    print(nb, "est un nombre pair")
else : 
    print(nb, "est un nombre  impair")
5 est un nombre impair

nb % 2 == 0 est une expression qui vaut False lorsque nb vaut 5. L'instruction print(nb, "est un nombre pair") est ignorée mais print(nb, "est un nombre impair") est exécutée.

L'instruction if … elif … else

Lorsque l'on souhaite disposer de plus d'une alternative, l'instruction if … elif … else permet de conditionner l'exécution de plusieurs blocs d'instructions par la valeur de plusieurs expressions booléennes.

elif est équivalent à else if. On peut ajouter autant de clauses elif que nécessaires.

La syntaxe de l'instruction if … elif … else est :

if expression1:
    bloc_instructions_1
elif expression2 : 
    bloc_instructions_2
else: 
    bloc_instructions_3
bloc_instructions_4
expression1 et expression2 ont pour valeur True ou False.

  • Lorsque expression1 a pour valeur True, le bloc bloc_instructions_1 est exécuté, et les blocs bloc_instructions_2 et bloc_instructions_3 sont ignorés.
  • Lorsque expression1 a pour valeur False:
    • le bloc bloc_instructions_1 est ignoré,
    • si expression2 a pour valeur True, le bloc bloc_instructions_2 est exécuté, et le bloc bloc_instructions_3 est ignoré ;
    • si expression2 a pour valeur False, le bloc bloc_instructions_2 est ignoré, et le bloc bloc_instructions_3 est exécuté.

On exécute donc soit le bloc bloc_instructions_1, soit le bloc bloc_instructions_2, soit le bloc bloc_instructions_3, mais toujours un seul parmi les 3.

  • Dans tous les cas, si le bloc bloc_instructions_4 existe, il est exécuté ensuite.

Exemple :

nb = 15
if nb <= 10:
    print(nb, "est inférieur ou égal à 10")
elif nb >= 20:
    print(nb, "est supérieur ou égal à 20")
else : 
    print(nb, "est strictement compris entre 10 et 20")
15 est strictement compris entre 10 et 20

nb <= 10 est une expression qui vaut False lorsque nb vaut 15.
L'instruction print(nb, "est inférieur ou égal à 10") est ignorée.
nb >= 20 est une expression qui vaut False lorsque nb vaut 15.
L'instruction print(nb, "est supérieur ou égal à 20") est aussi ignorée.

L'instruction print(nb, "est strictement compris entre 10 et 20") est donc exécutée.