Skip to content
Tutoriels
Python
python-u-switch

Switch Case Python : Comment implémenter des déclarations Switch en Python

Python, un langage de programmation polyvalent et puissant, a évolué au fil des ans, introduisant de nouvelles fonctionnalités et fonctionnalités pour améliorer sa convivialité et son efficacité. L'une de ces fonctionnalités qui a attiré l'attention des développeurs Python du monde entier est l'introduction de déclarations Switch Case en Python 3.10. Cet article examinera les détails des déclarations Switch Case en Python, leur fonctionnement et les alternatives disponibles en Python.

Vous voulez créer rapidement une visualisation des données à partir d'une dataframe de Pandas en Python sans code ?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire des données avec la visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse et de visualisation des données dans Jupyter Notebook en transformant votre dataframe pandas (et votre dataframe polars) en une interface utilisateur de style Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation des données (opens in a new tab)

Qu'est-ce qu'une déclaration Switch Case en Python ?

Les déclarations Switch Case, également appelées correspondance de motifs structurels, sont une fonctionnalité courante dans de nombreux langages de programmation. Cependant, elles étaient absentes en Python jusqu'à l'introduction de la version 3.10. Une déclaration Switch Case est un type d'instruction de contrôle qui permet de tester une variable pour savoir si elle est égale à une liste de valeurs. Chaque valeur est appelée un cas, et la variable sur laquelle on effectue la commutation est vérifiée pour chaque cas.

En Python 3.10, la déclaration Switch Case est implémentée en utilisant le mot-clé match, suivi d'une expression. Le mot-clé case est utilisé pour définir différents cas, et le code sous chaque cas est exécuté si l'expression correspond au cas.

Pourquoi n'y avait-il pas de déclaration Switch Case en Python avant la version 3.10 ?

Contrairement à d'autres langages de programmation, Python n'incluait pas de déclaration Switch Case avant la version 3.10. La raison principale en est la philosophie de simplicité et de lisibilité de Python. Les créateurs de Python estimaient que l'inclusion de déclarations Switch Case pouvait conduire à un code plus complexe et moins lisible. Au lieu de cela, Python utilisait des instructions if-elif-else pour gérer plusieurs conditions, ce qui servait un objectif similaire aux déclarations Switch Case, mais de manière plus pythonique.

Cependant, avec la sortie de Python 3.10, le langage a introduit des déclarations Switch Case, reconnaissant leur potentiel pour améliorer l'efficacité et la lisibilité du code dans certaines situations.

Comment fonctionne le Switch Case en Python 3.10 ?

En Python 3.10, les déclarations Switch Case sont implémentées en utilisant les mots-clés match et case. Voici un exemple basique de son fonctionnement :

def switch_case(x):
    match x:
        case 1:
            return "un"
        case 2:
            return "deux"
        default:
            return "inconnu"

Dans cet exemple, la fonction switch_case prend un argument x. Le mot-clé match est utilisé pour faire correspondre l'argument x à différents cas. Si x est égal à 1, la fonction renvoie "un". Si x est égal à 2, elle renvoie "deux". Le cas default est utilisé comme solution par défaut si x ne correspond à aucun des cas définis.

Quelles sont les alternatives à Switch Case en Python ?

Avant l'introduction des déclarations Switch Case en Python 3.10, les développeurs en Python utilisaient différentes méthodes pour simuler la fonctionnalité d'une déclaration Switch Case. L'une des méthodes les plus courantes est d'utiliser un dictionnaire pour associer des valeurs à des fonctions ou à des résultats. Voici un exemple :

def un():
    return "un"
 
def deux():
    return "deux"
 
def inconnu():
    return "inconnu"
 
switch_dict = {
    1: un,
    2: deux
}
 
def switch_case_dict(x):
    return switch_dict.get(x, inconnu)()

Dans cet exemple, le dictionnaire switch_dict associe les valeurs 1 et 2 aux fonctions un et deux, respectivement. La méthode get du dictionnaire est utilisée pour récupérer la fonction correspondant à l'entrée x, et si x n'est pas dans le dictionnaire, elle retourne la fonction inconnu.

Poursuivez à partir de là, voici les segments restants :

Équivalent syntaxique à Switch Case en Python

Avant l'avènement de Python 3.10, les développeurs utilisaient souvent des instructions if-elif-else comme équivalent syntaxique des déclarations Switch Case. Ces instructions permettent au code d'évaluer plusieurs expressions et d'exécuter un bloc de code dès que l'une des conditions est évaluée à True. Voici un exemple :

def switch_case_if(x):
    if x == 1:
        return "un"
    elif x == 2:
        return "deux"
    else:
        return "inconnu"

Dans cet exemple, la fonction switch_case_if prend un argument x. Si x est égal à 1, la fonction renvoie "un". Si x est égal à 2, elle renvoie "deux". L'instruction else sert de cas par défaut, renvoyant "inconnu" si x ne correspond à aucune des conditions précédentes.

Performance des déclarations Match Case (Switch Case) en Python

La performance des déclarations Match Case en Python est comparable à celle des instructions if-elif-else. Cependant, les déclarations Match Case peuvent offrir une meilleure lisibilité et une meilleure maintenabilité, notamment lorsqu'il s'agit d'un grand nombre de cas. Il est important de noter que les performances peuvent varier en fonction du cas d'utilisation spécifique et de la complexité des motifs impliqués.


FAQ

Maintenant, répondons à quelques questions fréquemment posées sur les déclarations Switch Case en Python :

Quel est l'équivalent syntaxique des déclarations Switch Case en Python?

Avant Python 3.10, les développeurs utilisaient souvent des instructions if-elif-else comme équivalent syntaxique des instructions Switch Case. Ces instructions permettent au code d'évaluer plusieurs expressions et d'exécuter un bloc de code dès qu'une des conditions est évaluée à true.

Comment simuler un Switch Case en Python à l'aide d'un dictionnaire ?

Un dictionnaire peut être utilisé pour simuler une instruction Switch Case en Python. Les clés du dictionnaire agissent comme les cas, et les valeurs sont les résultats ou les fonctions à exécuter. La méthode "get" du dictionnaire peut être utilisée pour récupérer le résultat pour un cas donné, avec une valeur par défaut facultative si le cas n'est pas trouvé dans le dictionnaire.

Quelles sont les performances des instructions Match Case (Switch Case) en Python ?

Les performances des instructions Match Case en Python sont comparables à celles des instructions if-elif-else. Cependant, les instructions Match Case peuvent offrir une meilleure lisibilité et maintenabilité, surtout lorsqu'il s'agit d'un grand nombre de cas. Les performances peuvent varier en fonction du cas spécifique d'utilisation et de la complexité des modèles impliqués.

Conclusion

Cela conclut l'article sur les instructions Switch Case en Python. Il fournit un aperçu complet du sujet, y compris ce qu'elles sont, pourquoi elles n'ont pas été incluses dans Python avant la version 3.10, comment elles fonctionnent dans Python 3.10 et les alternatives disponibles. L'article répond également à certaines questions fréquemment posées sur les instructions Switch Case en Python.