Johdanto Python-kytkinlausekkeeseen

Vaihtolause on erittäin hyödyllinen ja tehokas ohjelmointiominaisuus. Se on vaihtoehtona if-else-if tikkaat-lauseelle ja tarjoaa paremman suorituskyvyn ja hallittavissa olevan koodin kuin if-else-if tikkaat-käsky. Suurin osa ohjelmointikieleistä (kuten Java, C jne.) Tarjoaa kytkinlausekkeita, mutta Python-kielellä ei ole kytkinlausekkeita. Jos kuitenkin haluat vaihtaa tapauslauseita, on erittäin tehokas tapa toteuttaa vaihto tapauslausunto-ominaisuus Pythoniin. Tämä opetusohjelma auttaa sinua toteuttamaan sen.

vuokaavio

Kullakin ohjelmointikielellä olevalla kytkinlausekkeella on sama toiminnallisuus, mutta hieman erilainen syntaksi. Python-kieli ei tarjoa sisäisiä kytkinlausekkeita. Voimme toteuttaa tämän ominaisuuden samalla virtauksella ja toiminnolla, mutta eri syntaksilla ja toteutuksella Python Dictionary -sovelluksella.

Vaihtolauseen syntaksi

Tarkastellaan vain alla olevia kahta erilaista kytkinlausekkeen syntaksia. Ensimmäinen lause osoittaa kytkinlausekkeiden vakiosyntaksin muilla ohjelmointikieleillä, kuten C, Java jne. Toinen lause on Switch-käskyn Python-toteutus. Voit selvästi liittää kuinka molemmat ovat toiminnallisesti samanlaisia, mutta toteutuksessa erilaisia.

1. Vaihda muilla kielillä (c, Java, ..)

Syntaksi:

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. Vaihda toteutus Pythonissa

Syntaksi:

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

Vaihtolausekkeen toiminta

  • Standardikytkentälausekkeen toiminta millä tahansa ohjelmointikielellä on samanlainen. Se koostuu useasta tapauksesta, joissa jokaisessa on koodilohko ja katkaisulauseke.
  • Syöteargumenttia verrataan useisiin tapauksiin peräkkäin. Jos argumentti vastasi jotakin tapausta, niin vastaava lohkon lauseke suoritetaan ja ohjaus tulee pois katkaisulausekkeen katkolausekkeesta.
  • Jos mikään tapaus ei vastaa syöttöargumenttia, oletuslohkon käsky suoritetaan.
  • Python-toteutuksessa kytkinlausekkeissa pidämme Python-sanakirjaa sanakirjan kytkimenä ja avaimina tapauksina. Kutsumme tässä sanakirjan get () -funktiota vaadituilla argumenteilla, ts. Syöttöavaimella ja oletusarvolla.
  • Jos syöttönäppäin vastaa mitä tahansa sanakirjan näppäintä, vastaava arvo palautetaan. Jos syöttöavain ei kuitenkaan vastaa yhtäkään sanakirjapainiketta, oletusarvo palautetaan.

Switch-käskyn toteutus Pythonissa

Kuten tiedämme, kytkintapauslauseke ja jos muuten-jos tikkaat-lause ovat vuorotellen toisiaan. Molempia voidaan käyttää saman päämäärän saavuttamiseen, mutta vaihtokokonaisuuslauseke tarjoaa paremman suorituskyvyn ja hallittavissa olevan koodin kuin jos muuten-jos tikkaat-lause. Python-kielellä ei ole kytkinlausekkeita, mutta voimme toteuttaa samanlaisen toiminnallisuuden Python Dictionary -sovelluksella.

Seuraavassa osassa näemme kunkin toteutuksen esimerkillä.

Esimerkki # 1

If-else-if tikkaiden käyttö - Vaihtoehto vaihtaa tapauslausetta. Tässä esimerkissä olemme käyttäneet if-else-if ladder -lausetta viikonpäivän saamiseksi. Samassa käyttötapauksessa näemme myös kytkimen tilan toteutuksen Pythonissa.

Koodi:

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

lähtö:

Esimerkki 2

Kytkentälausekkeen toteutus merkkijonojen sanakirjaa käyttämällä. Python-kielellä ei ole kytkinlausekkeita. Voimme kuitenkin tehokkaasti toteuttaa kytkinlausetoiminnon Pythonissa käyttämällä alla olevaa sanakirjaa.

Selitys: Sanakirja Pythonissa on järjestämätön kokoelma avain- ja arvopareja. Alla olevassa koodinpätkässä vaihtaja on sanakirjamuuttuja, jolla on näppäin: arvoparit, jotka ovat samanlaisia ​​kuin kytkimen kaltaiset tapaukset.

Get () -menetelmällä pääsemme sanakirjan kohtaan siirtämällä argumentit avaimeksi ja valinnaiseksi oletusarvoksi. Oletusarvo auttaa toteuttamaan vaihtolausekkeen 'oletustapaus'.

Koodi:

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

lähtö:

Annetaan tässä esimerkissä 6 syöttöargumenttina tai syöttöavaimena, jota etsitään sanakirjan (vaihtaja) näppäimistä. Kun avain = 6 löytyy, se palauttaa arvon lauantaina. Siirrä nyt syöttöavaimena 8, jota etsitään sanakirjan näppäimillä (vaihtaja). Koska avainta = 8 ei löydy, se palauttaa oletusarvon Virheellinen päivä.

Esimerkki 3

Kytkentälausekkeen toteuttaminen käyttämällä sanakirjojen toimintojen kartoitusta. Yllä olevassa esimerkissä sanakirjan arvot ovat merkkijonotyyppisiä eli vakioita. Mutta on mielenkiintoista tietää, että Python-sanakirjan arvot voivat olla mitä tahansa tietotyyppiä.

Python-sanakirjan arvot voivat olla vakioita (kokonaislukuja, merkkijonoja) samoin kuin funktioita. Tässä esimerkissä toteutamme kytkinlausekkeen, joka tukee myös funktion kutsua jokaiselle kytkentätapaukselle käyttämällä alla olevaa funktion sanakirjaa.

Koodi:

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

lähtö:

johtopäätös

Kuten edellä olemme nähneet, sama käyttötapa voidaan toteuttaa sekä kytkentätapauskäskyllä ​​että if-else-if -portaalla. Mutta Switchin lausunto tarjoaa hallittavan ja luettavan koodin kuin if-else-if ladder -lausunto. Olemme myös nähneet, että Python-kielellä ei ole kytkinlausekkeita, mutta voimme toteuttaa saman tehokkaammalla tavalla Python Dictionary -sovelluksella.

Suositellut artikkelit

Tämä on opas Python-kytkinlausekkeeseen. Tässä keskustellaan syntaksista, vuokaaviosta ja python-kytkinlausekkeen toiminnasta sekä esimerkkeistä ja toteutuksesta. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Perintö Pythonissa
  2. Pythonin ylikuormitus
  3. Sanakirja Pythonissa
  4. Sanakirja Pythonissa