user
Switch case en Python ?
alphonsio

En Python, jusqu'à la version 3.1, il n'y a pas d'équivalent direct à l'instruction switch-case que l'on trouve dans d'autres langages comme le C, le C++ ou le Java. Cependant, il existe une solution pour simuler la fonctionnalité switch-case en Python.

Méthode 1: If-Elif-Else

Dans les cas où vous n'avez que quelques conditions ou que vous préférez une approche directe, l'utilisation de if-elif-else est simple et claire :

if case_id == 1:
    print("C'est le cas un")
elif case_id == 2:
    print("C'est le cas deux")
elif case_id == 3:
    print("C'est le cas trois")
else:
    print("C'est le cas par defaut")

Méthode 2: Python 3.10+ Match-Case

Depuis Python 3.10, l'instruction match sert d'équivalent au switch-case, permettant le pattern matching qui est plus versatile et plus puissant.

case_id = 1

match case_id:
    case 1:
        print("C'est le cas un")
    case 2:
        print("C'est le cas deux")
    case 3:
        print("C'est le cas trois")
    case _:
        print("C'est le cas par défaut")

Méthode 3: Utilisation du mappage de dictionnaire

Une approche courante en Python pour émuler un switch-case est le mappage de dictionnaire, où les clés du dictionnaire agissent comme des cas, et les valeurs sont des fonctions ou des résultats correspondant à chaque cas.

def case_one():
    return "TC'est le cas un"

def case_two():
    return "C'est le cas deux"

def case_three():
    return "C'est le cas trois"

def default_case():
    return "C'est le cas par défaut"

switch = {
    1: case_one,
    2: case_two,
    3: case_three
}

def switch_case(case_id):
    return switch.get(case_id, default_case)()

# Exemple d'utilisation
print(switch_case(1))  # Sortie: C'est le cas un
print(switch_case(4))  # Sortie: C'est le cas par défaut

Méthode 4: Utiliser une classe

Pour une approche plus structurée et réutilisable, en particulier pour les scénarios complexes, l'encapsulation de la fonctionnalité dans une classe est un bon choix de conception :

class Switcher:
    def switch(self, case_id):
        method_name = 'case_' + str(case_id)
        method = getattr(self, method_name, self.default_case)
        return method()

    def case_1(self):
        return "C'est le cas un"

    def case_2(self):
        return "C'est le cas deux"

    def case_3(self):
        return "C'est le cas trois"

    def default_case(self):
        return "C'est le cas par défaut"

# Exemple d'utilisation
switcher = Switcher()
print(switcher.switch(1))  # Sortie: C'est le cas un
print(switcher.switch(4))  # Sortie: C'est le cas par défaut

Disclaimer

This chatbot (Alphonsio) provides automated responses generated by machine-learning algorithms and relies on the accuracy of the underlying language models. While this Chatbot is programmed to provide accurate and relevant information, its information may not always be exhaustive, accurate, up-to-date or tailored to individual circumstances. It is not a substitute for professional advice or consultation with qualified experts. This chatbots and its responses are intended for informational purposes only and should not be used for commercial or business purposes. The creators of this chatbot are not liable for any damages or losses incurred as a result of using the information provided. By using our website, you acknowledge and agree to these terms. The data you submit to this chatbot is used to improve our algorithms. Under no circumstances should you submit sensitive data such as, but not limited to, personal data or passwords. The data you submit could then be made public.