Inleiding tot Python Switch-verklaring

Een schakeloptie is een zeer nuttige en krachtige programmeerfunctie. Het is een alternatief voor if-else-if ladderverklaring en biedt betere prestaties en beter beheersbare code dan een if-else-if ladderverklaring. De meeste programmeertalen (zoals Java, C, etc.) bieden schakelinstructies aan, maar de Python-taal heeft geen schakelinstructies. Als u echter van case-statement wilt wisselen, is er een zeer efficiënte manier om een ​​functie van case-statement in Python te implementeren. Deze zelfstudie helpt u deze te implementeren.

flowchart

De schakeloptie in elke programmeertaal heeft dezelfde functionaliteit maar een iets andere syntaxis. De Python-taal biedt geen ingebouwde schakelinstructies. We kunnen deze functie met dezelfde stroom en functionaliteit implementeren, maar met verschillende syntaxis en implementatie met behulp van Python Dictionary.

Syntaxis van Switch-verklaring

Kijkt alleen maar naar de onderstaande twee verschillende syntaxis van de schakelopdracht. De eerste instructie toont de standaardsyntaxis van switch-instructies in andere programmeertalen zoals C, Java, enz. De tweede instructie is de Python-implementatie van de Switch-instructie. Je kunt duidelijk vertellen hoe beide vergelijkbaar zijn in functionaliteit maar verschillend in implementatie.

1. Schakelen in andere talen (c, Java, ..)

Syntaxis:

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. Implementatie van schakelaar in Python

Syntaxis:

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")

Werking van Switch-verklaring

  • De werking van de standaard schakelinstructie in elke programmeertaal is vergelijkbaar. Het bestaat uit meerdere cases die elk een codeblok en break-statement hebben.
  • Het invoerargument wordt na elkaar vergeleken met meerdere gevallen. Als het argument overeenkomt met een van de gevallen, wordt de bijbehorende blokinstructie uitgevoerd en komt het besturingselement uit de schakelinstructie bij de break-instructie.
  • Als geen van de gevallen overeenkomt met het invoerargument, wordt de standaardblokinstructie uitgevoerd.
  • In Python-implementatie van schakelinstructies beschouwen we het Python-woordenboek als de schakelaar en sleutels van het woordenboek als cases. Hier noemen we de functie get () van het woordenboek met de vereiste argumenten, bijvoorbeeld invoersleutel en een standaardwaarde.
  • Als de invoersleutel overeenkomt met een van de sleutels van het woordenboek, wordt de bijbehorende waarde geretourneerd. Als de invoersleutel echter niet overeenkomt met een van de woordenboeksleutels, wordt de standaardwaarde geretourneerd.

Implementatie van de Switch-instructie in Python

Zoals we weten, zijn de instructie van de omschakelingsgeval en if-else-if van elkaar afwisselend. Beide kunnen worden gebruikt om hetzelfde doel te bereiken, maar een schakelgevalverklaring biedt betere prestaties en beter beheersbare code dan een if-else-if-ladderverklaring. De taal van Python heeft geen schakelinstructies, maar we kunnen een vergelijkbare functionaliteit implementeren met behulp van Python Dictionary.

In het volgende gedeelte zien we de implementatie van elk voorbeeld.

Voorbeeld 1

Gebruik van if-else-if ladder - Een alternatief om van casus te wisselen. In dit voorbeeld hebben we de instructie if-else-if ladder gebruikt om de dag van de week te krijgen. Voor dezelfde use case zullen we ook de implementatie van de schakelstatus in Python zien.

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))

Output:

Voorbeeld 2

Implementatie van schakelinstructie met Dictionary of Strings. De Python-taal heeft geen schakelinstructies. We kunnen echter een functie voor schakelinstructies efficiënt implementeren in Python met Dictionary zoals hieronder.

Verklaring: Woordenboek in Python is een ongeordende verzameling sleutel- en waardeparen. In het onderstaande codefragment is de switcher een woordenboekvariabele die sleutel vasthoudt: waardeparen vergelijkbaar met switch-achtige gevallen.

Met de methode get () hebben we toegang tot het item van het woordenboek door de argumenten door te geven als de sleutel en de optionele standaardwaarde. De standaardwaarde helpt bij het implementeren van het 'standaardgeval' van een schakelinstructie.

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))

Output:

Laten we in dit voorbeeld 6 doorgeven als invoerargument of invoersleutel die wordt gezocht in de sleutels van het woordenboek (switcher). Als de sleutel = 6 wordt gevonden, retourneert deze de waarde als zaterdag. Geef nu 8 door als invoertoets die wordt gezocht in de toetsen van het woordenboek (schakelaar). Omdat de sleutel = 8 niet wordt gevonden, retourneert deze de standaardwaarde als Ongeldige dag.

Voorbeeld 3

Implementatie van schakelopdracht met behulp van Dictionary-mapping van functies. In het bovenstaande voorbeeld zijn de waarden van het woordenboek van het gegevenstype string, dwz constant. Maar het is interessant om te weten dat de waarden van een Python-woordenboek van elk gegevenstype kunnen zijn.

De waarden van een Python-woordenboek kunnen constanten (gehele getallen, tekenreeksen) en functies zijn. In dit voorbeeld zullen we de switch-instructie implementeren die ook de functie-aanroep voor elke switch-case ondersteunt met behulp van het woordenboek met functies zoals hieronder.

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))

output:

Conclusie

Zoals we hierboven hebben gezien, kan dezelfde use case worden geïmplementeerd door zowel de switch case-instructie als de if-else-if-ladderverklaring. Maar de verklaring van Switch biedt een beter beheersbare en leesbare code dan de instructie if-else-if ladder. We hebben ook gezien dat de taal van Python geen schakelinstructies heeft, maar we kunnen dit op een efficiëntere manier implementeren met behulp van Python Dictionary.

Aanbevolen artikelen

Dit is een gids voor Python Switch Statement. Hier bespreken we de syntaxis, het stroomdiagram en de werking van de instructie Python Switch samen met voorbeelden en implementatie. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Overerving in Python
  2. Python overbelast
  3. Woordenboek in Python
  4. Woordenboek in Python