Switch Case en Python avec l'instruction match
Comment utiliser le match-case ? Pourquoi le préférer à des ifs ? À quoi cette instruction sert ? Découvrez tout sur le switch-case version Python !
Le match-case sont arrivés avec la version 3.10 de Python et PEP 634. C’est l’équivalent du switch-case des autres langages de programmation. Cette instruction de “Filtrage par motif structurel” permet de vérifier qu’une variable correspond à une des valeurs définies.
match-case
se présente comme ça en Python :
match valeur:
case pattern_1:
expression_1
case pattern_2:
expression_2
case pattern_3:
expression_3
case _:
expression_par_defaut
Avant Python 3.10, on était obligé d’avoir des conditions if pour tester si le contenu d’une variable matchait un pattern.
def switch(jour):
if jour == 1:
return 'Lundi'
elif jour == 2:
return 'Mardi'
elif jour == 3:
return 'Mercredi'
elif jour == 4:
return 'Jeudi'
elif jour == 5:
return 'Vendredi'
elif jour == 6:
return 'Samedi'
elif jour == 7:
return 'Dimanche'
else:
return 'Pas un jour de la semaine'
Maintenant avec l’instruction match, on peut éviter les instruction if-elif-else pour avoir un code plus lisible.
match jour:
case 1:
return 'Lundi'
case 2:
return 'Mardi'
case 3:
return 'Mercredi'
case 4:
return 'Jeudi'
case 5:
return 'Vendredi'
case 6:
return 'Samedi'
case 7:
return 'Dimanche'
case _:
return 'Pas un jour de la semaine'
Comment implémenter un switch-case en Python ?
Si vous utilisez une version antérieure à Python 3.10, il peut être utile de créer sa propre instruction switch/match case. On peut faire ça en créant une fonction qui prend un paramètre et le test contre différents patterns.
def switch(valeur):
if valeur == pattern_1:
expression_1
elif valeur == pattern_2:
expression_2
elif valeur == pattern_3:
expression_3
else:
expression_par_defaut
def
est le mot clé qui permet de créer une fonction en pythonswitch
est le nom de la fonctionvaleur
est le paramètre de la fonctionif
,elif
etelse
sont des mots clés de conditionpattern_x
sont les valeurs avec lesquelles on compare notre variablevaleur
expression_x
est le code qui sera exécuté ou retourné si la comparaison est vraieexpression_par_defaut
est ce qui sera exécuté sivaleur
ne correspondait à aucun pattern

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.