Skip to content

Prise de décision en Python

La prise de décision implique d’anticiper les conditions qui pourraient survenir pendant l’exécution du programme et de spécifier des actions en fonction de la satisfaction de ces conditions.

Les structures de décision évaluent des expressions, qui donnent un résultat booléen : True ou False. Basé sur ce résultat, votre programme décide quel bloc de code exécuter.

Le flux général de la prise de décision se présente souvent comme suit : Vérifier une condition. Si elle est vraie, effectuer l’Action A. Si elle est fausse, peut-être vérifier une autre condition ou effectuer l’Action B.

Comprendre la véracité (Truthiness) en Python

Section titled “Comprendre la véracité (Truthiness) en Python”

En Python, les valeurs sont évaluées dans un contexte booléen (comme dans une instruction if). Les éléments suivants sont considérés comme False :

  • La valeur booléenne False elle-même.
  • L’objet spécial None.
  • Types numériques égaux à zéro (par exemple, 0, 0.0, 0j).
  • Séquences vides (par exemple, '', (), []).
  • Mappings vides (par exemple, {}).
  • Objets de classes définies par l’utilisateur qui implémentent une méthode __bool__() ou __len__() renvoyant False ou 0.

Toutes les autres valeurs sont généralement considérées comme True. Ce concept est souvent appelé « véracité » (truthiness).

Python fournit les types d’instructions de prise de décision suivants :

InstructionDescription
ifExécute un bloc de code uniquement si une condition spécifique est True.
if...elseExécute un bloc de code si une condition est True et un autre bloc si elle est False.
if...elif...elseVérifie plusieurs conditions en séquence et exécute le bloc correspondant à la première condition True. Un bloc else optionnel s’exécute si aucune des conditions n’est True.
Instructions if imbriquéesVous pouvez placer des instructions if, elif ou else à l’intérieur des blocs d’autres instructions de prise de décision.

Explorons ces structures.

Voici un exemple simple démontrant une instruction if :

#!/usr/bin/env python3
temperature = 35
# Utilise le formatage f-string moderne
if temperature > 30:
print(f"La température est de {temperature}. Il fait chaud dehors !")
print("Exécution terminée.")

Lorsque le code ci-dessus est exécuté, il produit :

La température est de 35. Il fait chaud dehors !
Exécution terminée.

L’utilisation de elif (else if) permet de vérifier plusieurs conditions :

#!/usr/bin/env python3
score = 75
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
print(f"Score : {score}, Note : {grade}")

Sortie :

Score : 75, Note : C

Suites à instruction unique (Sur une seule ligne)

Section titled “Suites à instruction unique (Sur une seule ligne)”

Si le bloc de code pour une clause if, elif ou else ne consiste qu’en une seule instruction, vous pouvez la placer sur la même ligne que l’en-tête. Cependant, pour la lisibilité (selon les directives de la PEP 8), il est généralement recommandé d’utiliser des lignes séparées et une indentation, surtout pour une logique plus complexe.

Exemple de clause if sur une seule ligne :

#!/usr/bin/env python3
var = 100
# Remarque : le Python idiomatique évite les parenthèses autour de la condition
if var == 100: print("La valeur de l'expression est 100")
print("Au revoir !")

Lorsque le code ci-dessus est exécuté, il produit :

La valeur de l'expression est 100
Au revoir !

Pour plus de détails sur le flux de contrôle, consultez la documentation officielle de Python : https://docs.python.org/3/tutorial/controlflow.html#if-statements