Exécutions conditionnelles
Les exécutions conditionnelles permettent d'effectuer différentes actions selon certaines conditions préalables, analysées par le programme grâce à des tests d'égalité, d'inégalité ou d'appartenance.
flowchart TD
entree["Début"]
si{"`Condition
VRAI ?`"}
instrA["Instruction A"]
instrB["Instruction B"]
fin["Fin ou suite"]
entree --> si
si -- Oui --> instrA
si -- Non --> instrB
instrA --> fin
instrB --> fin
style entree fill:#FFFFFF00, stroke:#FFFFFF00;
Ce bloc en forme de losange est appelé Si ... Alors ... Sinon ...
if / else
if condition:
instructionA
else:
instructionB
# Fin ou suite
Notons que :
conditionest un test qui donne un booléen en fin de test.- L'instruction
elsen'est pas obligatoire - Après
if conditionetelse, il faut mettre deux points: - Il est nécessaire d'indenter les instructions internes (quatre espaces).
Comment indenter ?
En utilisant la touche Tab (elle contient les symboles et ). Pour revenir en arrière, on utilisera Shift et Tab en même temps.
On peut aussi mettre quatre espaces .
Lorsqu'il y a plus de deux cas à envisager, on peut imbriquer les if...else... mais le code devient difficile à lire.
flowchart TD
entree["Début"]
si1{"`Test 1
VRAI ?`"}
si2{"`Test 2
VRAI ?`"}
instrA["Instruction A"]
instrB["Instruction B"]
instrC["Instruction C"]
fin["Fin ou suite"]
entree --> si1
si1 -- Oui --> instrA
si1 -- Non --> si2
si2 -- Oui --> instrB
si2 -- Non --> instrC
instrA --> fin
instrB --> fin
instrC --> fin
style entree fill:#FFFFFF00, stroke:#FFFFFF00;
Pour éviter ces imbrications, on utilisera elif qui est la contraction de else if.
elif
if condition:
instructionA
elif condition:
instructionB
else:
instructionC
# Fin ou suite
Notons que :
- Il peut y a voir plusieurs imbrications de
elif
Voici un exemple d'utilisation où on demande l'âge de l'utilisateur et on affiche un message personnalisé selon son âge :
age = int(input("Entrez votre âge :"))
if age < 0 or age > 130:
print("C'est impossible !")
elif age >= 0 and age < 18:
print("Vous êtes mineur")
else:
print("Vous êtes majeur")