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

Susan Sarandon
Libérer: 2024-11-19 10:37:02
original
299 Les gens l'ont consulté

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"
Copier après la connexion

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]()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal