Les instructions if-else en Python

01 Sep 2019 01 Sep 2019 10207 vues ESSADDOUKI Mostafa 6 min de lecture

Structures de contrôle

Jusqu'à présent, nos programmes s'exécutaient de manière linéaire, instruction après instruction. Dans la réalité, un programme doit souvent :

BesoinMécanisme PythonMots-clés
Prendre des décisionsStructures conditionnellesif, elif, else
Répéter des actionsBouclesfor, while

Structures conditionnelles

L'instruction if est la structure de prise de décision fondamentale en Python. Elle permet d'exécuter un bloc d'instructions seulement si une condition est vraie.

Structure if simple


Syntaxe Python
if condition:
    # bloc exécuté uniquement si condition est True
    instruction_1
    instruction_2

# suite du programme (toujours exécutée)
Fonctionnement Python évalue la condition. Si elle vaut True, le bloc indenté est exécuté. Sinon, il est ignoré et l'exécution continue après le bloc.

Exemple n°1 — Division sécurisée

a = int(input("Saisir le 1er nombre  : "))
b = int(input("Saisir le 2ème nombre : "))

if b != 0:
    print(f"{a} / {b} = {a / b:.4f}")

print("fin du programme")
Sortie
Saisir le 1er nombre  : 3
Saisir le 2ème nombre : 4
3 / 4 = 0.7500
fin du programme

Structure if...else


Syntaxe Python
if condition:
    # bloc 1 — exécuté si condition est True
    ...
else:
    # bloc 2 — exécuté si condition est False
    ...

# suite du programme

Exemple n°2 — Division avec gestion d'erreur

a = int(input("Saisir le 1er nombre  : "))
b = int(input("Saisir le 2ème nombre : "))

if b != 0:
    print(f"{a} / {b} = {a / b:.4f}")
else:
    print("Erreur : division par zéro impossible !")
Sortie
Saisir le 1er nombre  : 3
Saisir le 2ème nombre : 0
Erreur : division par zéro impossible !

Structure if...elif...else

Lorsqu'il y a plus de deux cas à traiter, on utilise elif (contraction de else if). Python évalue les conditions dans l'ordre et exécute le premier bloc dont la condition est vraie.


Syntaxe Python
if condition_1:
    bloc_1
elif condition_2:
    bloc_2
elif condition_3:
    bloc_3
...
else:
    bloc_par_défaut   # exécuté si aucune condition n'est vraie
Remarque — Court-circuit Dès qu'une condition est vraie, les elif et else suivants sont ignorés. Un seul bloc est exécuté au maximum.

Exemple n°3 — Signe d'un nombre

a = int(input("Saisir un nombre : "))

if a > 0:
    print(f"{a} est positif")
elif a < 0:
    print(f"{a} est négatif")
else:
    print(f"{a} est nul")
Sortie
Saisir un nombre : 0
0 est nul

Exemple n°4 — Mention selon la note

note = float(input("Saisir une note (0-20) : "))

if note >= 16:
    mention = "Très bien"
elif note >= 14:
    mention = "Bien"
elif note >= 12:
    mention = "Assez bien"
elif note >= 10:
    mention = "Passable"
else:
    mention = "Insuffisant"

print(f"Note : {note:.1f}/20 → Mention : {mention}")
Sortie
Saisir une note (0-20) : 15.5
Note : 15.5/20 → Mention : Bien

Opérateur ternaire (expression conditionnelle)

L'opérateur ternaire permet d'écrire un if...else simple sur une seule ligne. Il retourne une valeur selon la condition, ce qui le rend très utile dans les affectations.


Syntaxe Python
valeur_si_vrai if condition else valeur_si_faux

Exemple n°5 — Parité d'un nombre

a = int(input("Saisir un nombre : "))

parite = "Pair" if a % 2 == 0 else "Impair"
print(f"{a} est {parite}")
Sortie
Saisir un nombre : 3
3 est Impair

Exemple n°6 — Usages courants de l'opérateur ternaire

x = 7

# Valeur absolue
abs_x = x if x >= 0 else -x
print(f"|{x}| = {abs_x}")

# Maximum de deux valeurs
a, b = 12, 9
maxi = a if a >= b else b
print(f"max({a}, {b}) = {maxi}")

# Affichage conditionnel dans une f-string
score = 85
print(f"Résultat : {'Admis' if score >= 50 else 'Refusé'}")
Sortie
|7| = 7
max(12, 9) = 12
Résultat : Admis
Astuce — Ternaire vs if...else classique L'opérateur ternaire est concis mais ne doit pas être surchargé. Réserver à des conditions simples et lisibles:
# ✅ Lisible — cas simple
label = "zéro" if n == 0 else "non nul"

# ❌ Trop complexe — préférer if...elif...else classique
res = "A" if n>90 else "B" if n>75 else "C" if n>60 else "D"

Structures if...else imbriquées

Il est possible de placer une structure conditionnelle à l'intérieur d'une autre pour gérer des cas avec plusieurs niveaux de vérification.


Syntaxe Python
if condition_1:
    if condition_2:
        bloc_1_1    # condition_1 ET condition_2 vraies
    else:
        bloc_1_2    # condition_1 vraie, condition_2 fausse
else:
    bloc_2          # condition_1 fausse
Attention — Lisibilité Les imbrications profondes rendent le code difficile à lire. Au-delà de 2 niveaux, préférer elif ou restructurer la logique avec des opérateurs logiques (and, or).

Exemple n°7 — Maximum de trois nombres

a = float(input("Entrez le 1er nombre : "))
b = float(input("Entrez le 2ème nombre : "))
c = float(input("Entrez le 3ème nombre : "))

if a >= b:
    if a >= c:
        maximum = a
    else:
        maximum = c
else:
    if b >= c:
        maximum = b
    else:
        maximum = c

print(f"Le plus grand nombre est : {maximum}")
Sortie
Entrez le 1er nombre  : 5
Entrez le 2ème nombre : 7
Entrez le 3ème nombre : 2
Le plus grand nombre est : 7.0
Astuce — Versions alternatives du maximum
# Avec opérateurs logiques (plus lisible)
if a >= b and a >= c:
    maximum = a
elif b >= c:
    maximum = b
else:
    maximum = c

# Avec la fonction intégrée max() (le plus concis)
maximum = max(a, b, c)

Récapitulatif des structures conditionnelles

StructureCas d'usageBlocs exécutés
ifUne seule condition à vérifier0 ou 1
if...elseDeux cas mutuellement exclusifsExactement 1
if...elif...elsePlusieurs cas mutuellement exclusifsExactement 1
Opérateur ternaireAffectation ou affichage conditionnel simpleExactement 1 valeur
if imbriquésConditions à plusieurs niveauxDépend des niveaux

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.