L'instruction Match/Case pour Python 3.10
Comme dans beaucoup de langages de programmation, il existe l'instruction match/case
ou parfois nommée switch/case
permettant de vérifier qu’une variable correspond à une des valeurs définies. Cette instruction a été introduite récemment dans la version 3.10 de Python. C'est une alternative à l'utilisation des conditions if
et elif
à répétition.
Regardons comment utiliser l'instruction Match/Case en Python.
Convertir des conditions if/elif
On a tous déjà vu des bouts de code avec beaucoup de conditions if
et elif
(ou else if
), ce qui n'est pas forcément très optimisé, ni très digeste à intégrer dans du code. C'est là que l'instruction switch/case
(ou match/case
en Python) intervient !
Regardons un bout de code utilisant des conditions elif
et convertissons le en utilisant des instructions match/case
:
Code avec des conditionsif
etelif
:
code = input()
if code == "200":
print("Succès : La requête a été traitée avec succès.")
elif code == "404":
print("Erreur : La ressource demandée est introuvable.")
elif code == "500":
print("Erreur serveur : Une erreur interne s'est produite.")
else:
print("Code inconnu : Le code fourni n'est pas reconnu.")
Voici un code très simple, avec la variable code
qui utilise la fonction input()
qui prompt à l'utilisateur l'entrée d'un code correspondant à 200, 404 ou 500. Si la valeur envoyée est différente, alors on passe dans le else
.
Code avec des instructions match/case
:
code = input()
match code:
case "200":
print("Succès : La requête a été traitée avec succès.")
case "404":
print("Erreur : La ressource demandée est introuvable.")
case "500":
print("Erreur serveur : Une erreur interne s'est produite.")
case _:
print("Code inconnu : Le code fourni n'est pas reconnu.")
Ce code effectue exactement la même chose qu'avec les conditions if
et elif
mais d'une manière bien plus claire et concise.
Dans le dernier case _
, cela correspond au reste, à tout ce qui n'a pas été spécifié. C'est l'équivalent d'un else
en quelques sortes.
Conclusion
Pour résumer, l'arrivée de l'instruction match/case
dans la version 3.10 de Python n'apporte pas de révolution d'un point de vue fonctionnalités, mais implémente une manière plus claire d'imbriquer ses conditions multiples.
Voici un rappel de l'utilisation de l'instruction match/case
en Python :
match valeur:
case pattern1:
# code à exécuter si le pattern1 correspond à la valeur
case pattern2:
# code à exécuter si le pattern2 correspond à la valeur
...
case patternN:
# code à exécuter si le patternN correspond à la valeur
case _:
# code à exécuter si aucun des patterns correspond