Introduction à la déclaration de commutateur Python

Une instruction switch est une fonctionnalité de programmation très utile et puissante. C'est une alternative à l'instruction Ladder if-else-if et offre de meilleures performances et un code plus gérable qu'une instruction ladder if-else-if. La plupart des langages de programmation (comme Java, C, etc.) proposent des instructions de commutation, mais le langage Python n'a pas d'instructions de commutation. Cependant, si vous aimez les instructions switch-case, il existe un moyen très efficace d'implémenter une fonction d'instruction switch case dans Python. Ce tutoriel vous aidera à l'implémenter.

Organigramme

L'instruction switch dans chaque langage de programmation a la même fonctionnalité mais une syntaxe légèrement différente. Le langage Python ne fournit aucune instruction de commutateur intégrée. Nous pouvons implémenter cette fonctionnalité avec le même flux et les mêmes fonctionnalités mais avec une syntaxe et une implémentation différentes à l'aide du dictionnaire Python.

Syntaxe de l'instruction Switch

Examine simplement les deux syntaxes ci-dessous de l'instruction switch. La première instruction montre la syntaxe standard des instructions switch dans d'autres langages de programmation comme C, Java, etc. La deuxième instruction est l'implémentation Python de l'instruction Switch. Vous pouvez clairement comprendre comment les deux sont similaires en termes de fonctionnalités mais différents dans leur mise en œuvre.

1. Basculer dans d'autres langages (c, Java, ..)

Syntaxe:

switch(N)
(
case 1: Statement if N = 1;
break;
case 2: Statement if N = 2;
break;
::
case n: Statement if N = n;
break;
default: Statement if N doesn't match any
)

2. Mise en œuvre du commutateur en Python

Syntaxe:

switcher=
(
key_1: value_1/method_1(),
key_2: value_2/method_2(),
key_3: value_3/method_3(),
::
key_n: value_n/method_n(),
)
key = N
value = switcher.get(key, "default")

Fonctionnement de la déclaration Switch

  • Le fonctionnement de l'instruction switch standard dans n'importe quel langage de programmation est similaire. Il se compose de plusieurs cas ayant chacun un bloc de code et une instruction break.
  • L'argument d'entrée est comparé à plusieurs cas l'un après l'autre. Si l'argument correspond à l'un des cas, l'instruction de bloc correspondante est exécutée et le contrôle sort de l'instruction switch à l'instruction break.
  • Si aucun des cas ne correspond à l'argument d'entrée, alors l'instruction de bloc par défaut est exécutée.
  • Dans l'implémentation Python des instructions switch, nous considérons le dictionnaire Python comme le commutateur et les clés du dictionnaire comme des cas. Ici, nous appelons la fonction get () du dictionnaire avec les arguments requis, c'est-à-dire la clé d'entrée et une valeur par défaut.
  • Si la clé d'entrée correspond à l'une des clés du dictionnaire, la valeur correspondante est renvoyée. Cependant, si la clé d'entrée ne correspond à aucune des clés de dictionnaire, la valeur par défaut sera retournée.

Implémentation de l'instruction Switch en Python

Comme nous le savons, l'instruction switch case et l'instruction ladder if-else-if sont alternées. Les deux peuvent être utilisés pour atteindre le même objectif, mais une instruction switch case offre de meilleures performances et un code plus gérable qu'une instruction ladder if-else-if. Le langage Python n'a pas d'instructions switch, mais nous pouvons implémenter une fonctionnalité similaire à l'aide du dictionnaire Python.

Dans la section suivante, nous verrons l'implémentation de chacun avec un exemple.

Exemple 1

Utilisation de l'échelle if-else-if - Une alternative pour changer l'instruction case. Dans cet exemple, nous avons utilisé l'instruction d'échelle if-else-if pour obtenir le jour de la semaine. Pour le même cas d'utilisation, nous verrons également l'implémentation de l'état du commutateur en Python.

Code:

def get_week_day(argument):
if(argument == 0):
day="Sunday"
elif(argument == 1):
day="Monday"
elif(argument == 2):
day="Tuesday"
elif(argument == 3):
day="Wednesday"
elif(argument == 4):
day="Thursday"
elif(argument == 5):
day="Friday"
elif(argument == 6):
day="Saturday"
else:
day="Invalid day"
return day
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

Production:

Exemple # 2

Implémentation de l'instruction switch à l'aide du Dictionary of Strings. Le langage Python n'a aucune instruction switch. Cependant, nous pouvons implémenter efficacement une fonction d'instruction de commutateur en Python en utilisant Dictionary comme ci-dessous.

Explication: Dictionnaire en Python est une collection non ordonnée de paires de clés et de valeurs. Dans l'extrait de code ci-dessous, le commutateur est une variable de dictionnaire qui contient des paires clé: valeur similaires aux cas de type commutateur.

En utilisant la méthode get (), nous pouvons accéder à l'élément du dictionnaire en passant les arguments comme clé et la valeur par défaut facultative. La valeur par défaut aide à implémenter le «cas par défaut» d'une instruction switch.

Code:

def get_week_day(argument):
switcher = (
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday"
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

Production:

Dans cet exemple, passons 6 comme argument d'entrée ou clé d'entrée qui sera recherché dans les clés du dictionnaire (switcher). Lorsque la clé = 6 est trouvée, elle renvoie la valeur samedi. Passez maintenant 8 comme clé d'entrée qui sera recherchée dans les clés du dictionnaire (sélecteur). Comme la clé = 8 n'est pas trouvée, elle renverra la valeur par défaut en tant que jour non valide.

Exemple # 3

Implémentation de l'instruction switch à l'aide du mappage Dictionary des fonctions. Dans l'exemple ci-dessus, les valeurs du dictionnaire sont de type chaîne de données, c'est-à-dire constantes. Mais il est intéressant de savoir que les valeurs d'un dictionnaire Python peuvent être de n'importe quel type de données.

Les valeurs d'un dictionnaire Python peuvent être des constantes (entiers, chaînes) ainsi que des fonctions. Dans cet exemple, nous implémenterons l'instruction switch qui prendra également en charge l'appel de fonction pour chaque cas de commutateur en utilisant le dictionnaire de fonctions ci-dessous.

Code:

def get_week_day(argument):
def zero():
return "Sunday"
def one():
return "Monday"
def two():
return "Tuesday"
def three():
return "Wednesday"
def four():
return "Thursday"
def five():
return "Friday"
def six():
return "Saturday"
switcher = (
0: zero(),
1: one(),
2: two(),
3: three(),
4: four(),
5: five(),
6: six()
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

production:

Conclusion

Comme nous l'avons vu ci-dessus, le même cas d'utilisation peut être implémenté à la fois par l'instruction switch case et par l'instruction lad-if-else-if. Mais l'instruction Switch fournit un code plus gérable et lisible que l'instruction d'échelle if-else-if. Nous avons également vu que le langage Python n'a pas d'instructions switch, mais nous pouvons les implémenter de manière plus efficace en utilisant Python Dictionary.

Articles recommandés

Ceci est un guide de la déclaration de commutateur Python. Nous discutons ici de la syntaxe, de l'organigramme et du fonctionnement de l'instruction de commutateur python ainsi que des exemples et de la mise en œuvre. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Héritage en Python
  2. Surcharge Python
  3. Dictionnaire en Python
  4. Dictionnaire en Python