Maison >développement back-end >Tutoriel Python >Comment puis-je implémenter une instruction Case/Switch en Python ?

Comment puis-je implémenter une instruction Case/Switch en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 10:37:02432parcourir

How Can I Implement a Case/Switch Statement in Python?

Alternative de Python à l'instruction Case/Switch

Bien que Python n'offre pas nativement d'équivalent direct à l'instruction case/switch, il existe plusieurs solutions de contournement potentielles.

Correspondance de modèles (Python 3.10 et versions ultérieures)

Dans Python 3.10, la correspondance de modèles a été introduite comme un substitut plus polyvalent aux instructions conditionnelles. Cette fonctionnalité permet aux développeurs de comparer une valeur à une série de modèles et d'exécuter les blocs de code correspondants.

Exemple :

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:  # Wildcard case
            return "Something's wrong with the internet"

Approche basée sur un dictionnaire (pré-Python 3.10)

Avant que la correspondance de modèles ne soit disponible, une solution de contournement Python courante impliquait l'utilisation d'un dictionnaire pour mapper les valeurs d'entrée à leurs blocs de fonction correspondants.

Exemple :

options = {0: zero, 1: sqr, 4: sqr, 9: sqr, 2: even, 3: prime, 5: prime, 7: prime}

def num_type(num):
    options[num]()

Remarques supplémentaires :

  • La correspondance de modèles est la solution préférée dans Python 3.10 et supérieur en raison de sa concision et de sa flexibilité.
  • L'approche basée sur un dictionnaire peut convenir pour les cas d'utilisation simples où un comportement de transition n'est pas nécessaire.
  • Les bibliothèques tierces peuvent fournir des fonctionnalités supplémentaires de type commutateur, mais elles peuvent avoir leurs propres bizarreries et limites.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn