C/C++:n tai Javan kaltaisista kielistä tulevat kehittäjät tietävät, että on olemassa ehdollinen lauseke, joka tunnetaan nimellä a Vaihda kotelo . Tämä Match Case on Pythonin Switch Case, joka esiteltiin vuonna Python 3.10. Tässä meidän on ensin välitettävä parametri ja sitten yritettävä tarkistaa, missä tapauksessa parametri on tyydyttävä. Jos löydämme vastaavuuden, suoritamme jonkin koodin ja jos vastaavuutta ei löydy ollenkaan, suoritetaan oletustoiminto.
Python Match Case Statement -syntaksi
Pythonin vastaavuustapauslauseke alustetaan ottelu avainsana, jota seuraa haettava parametri. Sitten eri tapaukset määritellään käyttämällä tapaus avainsana ja malli, joka vastaa parametria. The _ on jokerimerkki, joka suoritetaan, kun kaikki tapaukset eivät vastaa parametrin arvoa.
match parameter: case pattern1: # code for pattern 1 case pattern2: # code for pattern 2 . . case patterN: # code for pattern N case _: # default code block>
Sisällysluettelo
kuinka monta miljoonaa on miljardissa
- Simple Match Case Statement
- Yhdistä tapauslausunto TAI-operaattorin kanssa
- Yhdistä tapauslausunto Python If -ehtoon
- Yhdistä kotelo sekvenssikuvion kanssa
- Yhdistä tapauslausunto Python-sanakirjaan
- Yhdistä tapauslausunto Python-luokan kanssa
- Python Match -tapauslausunnon UKK
Katsotaanpa nyt muutamia esimerkkejä saadaksesi tietää, kuinka vastaavuustapauslauseke toimii Pythonissa.
Simple Match Case Statement
Yksinkertaisessa Python-hakutapauslauseessa tarkkaa arvoa verrataan ja sovitetaan tapausmallin arvoon. On olemassa erilaisia testitapauksia ja niitä vastaava koodi, jotka suoritetaan vain, kun tapaus täsmää. Muussa tapauksessa on oletustapaus, joka suoritetaan, kun kaikki määritetyt tapaukset eivät täsmää.
Esimerkki: Tässä esimerkissä pyydämme käyttäjää syöttämään arvon väliltä 1 ja 3 ja näyttämään sitä vastaavan numeron sanoin käyttämällä yksinkertaista vastaavuuskirjainkomentoa.
Python # simple match case statement def runMatch(): num = int(input('Enter a number between 1 and 3: ')) # match case match num: # pattern 1 case 1: print('One') # pattern 2 case 2: print('Two') # pattern 3 case 3: print('Three') # default pattern case _: print('Number not between 1 and 3') runMatch()>
Lähtö:
Enter a number between 1 and 3: 5 Number not between 1 and 3>
Yhdistä tapauslausunto TAI-operaattorin kanssa
Match tapaus Pythonin lauseke on tarkoitettu vain vastaamaan malleja ja tiettyjä avainsanoja tai parametreja. Mutta voimme myös käyttää match case -lausetta pythonissa, kun on useampi kuin yksi tapaus, jotka johtavat samaan tulokseen. Tässä tapauksessa voimme käyttää putkioperaattoria, joka tunnetaan myös OR-operaattorina ottelutapauksessa.
Esimerkki: Tässä esimerkissä pyydämme käyttäjää syöttämään arvon väliltä 1 ja 6. Tämän jälkeen OR-operaattoria käyttämällä olemme yhdistäneet parit yhden tapauksen, joka näyttää vastaavan numeronsa sanoin.
Python # python match case with OR operator def runMatch(): num = int(input('Enter a number between 1 and 6: ')) # match case match num: # pattern 1 case 1 | 2: print('One or Two') # pattern 2 case 3 | 4: print('Three or Four') # pattern 3 case 5 | 6: print('Five or Six') # default pattern case _: print('Number not between 1 and 6') runMatch()>
Lähtö:
Enter a number between 1 and 6: 4 Three or Four>
Yhdistä tapauslausunto Python If -ehtoon
Voimme myös käyttää Python If -ehto yhdessä match case -lausekkeen kanssa, kun tarkan arvon vastaamisen sijaan käytämme ehtoa. Ehtoon perustuen, jos arvo on True ja vastaa tapausmallia, koodilohko suoritetaan.
Esimerkki: Tässä esimerkissä käytämme if-ehtoa yhdessä match case -lausekkeen kanssa tarkistaaksemme, onko luku syötetty käyttäjätunnukseen positiivinen, negatiivinen vai nolla.
Python # python match case with if condition def runMatch(): num = int(input('Enter a number: ')) # match case match num: # pattern 1 case num if num>0: print('Positive') # kuvio 2 tapausnumero jos num< 0: print('Negative') # default pattern case _: print('Zero') runMatch()>
Lähtö:
Enter a number: -15 Negative>
Yhdistä kotelo sekvenssikuvion kanssa
Pythonin kirjainkokolausekkeita käytetään yleisesti sekvenssimallien, kuten luetteloiden ja merkkijonojen, vastaamiseen. Se on melko helppoa ja voi käyttää sijaintiargumentteja kuvioiden tarkistamiseen.
Esimerkki: Tässä esimerkissä käytämme python-merkkijonoa tarkistaaksemme, onko merkki sisällä merkkijono tai ei käytä ottelutapausta. Annamme merkkijonon sekä sen merkin indeksin, jonka haluamme tarkistaa merkkijonosta vastaavuuden kirjainkoon. Sitten määritimme ottelutapaukset sen suhteen, mikä tämä hahmo voisi olla.
Python # match case to check a character in a string def runMatch(): myStr = 'Hello World' # match case match (myStr[6]): case 'w': print('Case 1 matches') case 'W': print('Case 2 matches') case _: print('Character not in the string') runMatch()>
Lähtö:
Case 2 matches>
Esimerkki: Tässä esimerkissä käytämme a python-lista kuvioiden sovittamiseksi. Yhdistämme kadonneen ensimmäisen elementin ja käytimme myös sijaintiargumentteja vastaamaan listan muuta osaa.
Python # python match case with list def runMatch(mystr): # match case match mystr: # pattern 1 case ['a']: print('a') # pattern 2 case ['a', *b]: print(f'a and {b}') # pattern 3 case [*a, 'e'] | (*a, 'e'): print(f'{a} and e') # default pattern case _: print('No data') runMatch([]) runMatch(['a']) runMatch(['a', 'b']) runMatch(['b', 'c', 'd', 'e'])>
Lähtö:
No data a a and ['b'] ['b', 'c', 'd'] and e>
Yhdistä tapauslausunto Python-sanakirjaan
Python-hakujen tapauslauseet voivat käsitellä sanakirja yhtä hyvin. Se voi vastata yhtä näppäintä tai useita avaimia. Avainten ja arvojen on sijaittava sanakirjassa. Jos jokin arvo on väärässä tai jokin avain, jota ei ole olemassa ja joka ei vastaa todellista sanakirjaa ja arvoa, tämä tapaus hylätään.
Esimerkki: Tässä esimerkissä käytämme pythonissa sanakirjaa, jossa vastaa kirjainkoosta. Tarjoamme sanakirjoja, joissa on erilaisia tietoja osumatapaukseen, ja se vastaa sanakirjan avaimia eri tapauksiin.
tyhjennä välimuisti npmPython
# match case with python dictionaryu def runMatch(dictionary): # match case match dictionary: # pattern 1 case {'name': n, 'age': a}: print(f'Name:{n}, Age:{a}') # pattern 2 case {'name': n, 'salary': s}: print(f'Name:{n}, Salary:{s}') # default pattern case _ : print('Data does not exist') runMatch({'name': 'Jay', 'age': 24}) runMatch({'name': 'Ed', 'salary': 25000}) runMatch({'name': 'Al', 'age': 27}) runMatch({})>
Lähtö:
Name:Jay, Age:24 Name:Ed, Salary:25000 Name:Al, Age:27 Data does not exist>
Yhdistä tapauslausunto Python-luokan kanssa
Voimme myös käyttää Python-tunnit tapausten yhteensovittamiseksi Pythonin tapauskohtaisten lausekkeiden avulla. Tämä tekee koodista erittäin puhtaan, siistin ja mikä tärkeintä, helposti luettavan. Se käyttää Python-tietoluokkamoduulia.
Esimerkki: Tässä esimerkissä loimme kaksi luokkaa nimeltä henkilö ja ohjelmoija. Ensimmäinen ajatus osumalausekkeen näkemisen jälkeen olisi, että ohjelmoija ja henkilö ottelulausekkeen sisällä luovat vastaavien luokkien esiintymän, mutta näin ei ole. Se tarkistaa esiintymän annetuilla arvoilla. Joten tapaus Ohjelmoija (Om, kieli = Python, kehys = Django) ei luo ilmentymää, vaan tarkistaa, että välitetty objekti, jonka nimi on ilmentymä, on todellinen Ohjelmoija-luokan esiintymä, sitten se tarkistaa nimen, joka on Om , Python-kieli ja sitten Django-kehys. Tällä tavalla voimme tarkistaa arvot minkä tahansa luokan ilmentymässä.
Python # match case with python classes # import dataclass module from dataclasses import dataclass #Class 1 @dataclass class Person: name: str age: int salary: int # class 2 @dataclass class Programmer: name: str language: str framework: str def runMatch(instance): # match case match instance: # pattern 1 case Programmer('Om', language='Python', framework='Django'): print(f'Name: Om, Language:Python, Framework:Django') # pattern 2 case Programmer('Rishabh', 'C++'): print('Name:Rishabh, Language:C++') # pattern 3 case Person('Vishal', age=5, salary=100): print('Name:Vishal') # pattern 4 case Programmer(name, language, framework): print(f'Name:{name}, Language:{language}, Framework:{framework}') # pattern 5 case Person(): print('He is just a person !') # default case case _: print('This person is nothiing!') programmer1 = Programmer('Om', 'Python', 'Django') programmer2 = Programmer('Rishabh', 'C++', None) programmer3 = Programmer('Sankalp', 'Javascript', 'React') person1 = Person('Vishal', 5, 100) runMatch(programmer1) runMatch(programmer2) runMatch(person1) runMatch(programmer3)>
Lähtö:
Name: Om, Language:Python, Framework:Django Name:Rishabh, Language:C++ Name:Vishal Name:Sankalp, Language:Javascript, Framework:React>
Python Match -tapauslausunnon UKK
K: Mikä on Pythonin match case -lauseke?
V: Match-case-lauseke, joka tunnetaan myös nimellä kuvioiden sovitus, on Python 3.10:ssä käyttöön otettu ominaisuus. Se tarjoaa tiiviin ja ilmeisen tavan suorittaa kuvioiden täsmääminen tietorakenteissa, kuten monikoissa, listoissa ja luokissa. Sen avulla voit sovittaa lausekkeen arvon mallisarjaan ja suorittaa vastaavan koodilohkon vastaavalle kuviolle.
K: Miten vastaavuustapauslauseke eroaa if-elif-else -lausekkeista?
V: Match-case-lauseke on tehokkaampi ja ilmeisempi konstruktio verrattuna if-elif-else-lauseisiin. Vaikka if-elif-else -lausekkeet perustuvat loogisiin lausekkeisiin, matchcase-lauseet voivat täsmätä kaavoja datan rakenteen ja arvon perusteella. Match-case-lausekkeet tarjoavat jäsennellymmän ja luettavamman tavan käsitellä useita ehtoja ja suorittaa erilaisia toimintoja näiden ehtojen perusteella.
K: Mitä etuja osumatapauslausekkeen käyttämisestä on?
V: Matkustustapauslausunto tarjoaa useita etuja, mukaan lukien:
- Lyhytisyys: Match-case-lauseiden avulla voit ilmaista monimutkaista haarautumislogiikkaa ytimekkäästi ja luettavalla tavalla.
- Luettavuus: Kuvioiden täsmäytys tekee koodista luettavamman ja itsestään selvän, koska se muistuttaa läheisesti ongelmaaluetta.
- Turvallisuus: Tapausten täsmäytyslausekkeet tarjoavat kattavan kaavansovituksen varmistaen, että kaikki mahdolliset tapaukset käsitellään.