Utviklere som kommer fra språk som C/C++ eller Java vet at det er en betinget uttalelse kjent som en Bryterhus . Dette Match Case er Switch Case of Python som ble introdusert i Python 3.10. Her må vi først sende en parameter og deretter prøve å sjekke med hvilken sak parameteren blir tilfredsstilt. Hvis vi finner en treff, vil vi kjøre noe kode, og hvis det ikke er treff i det hele tatt, vil en standardhandling finne sted.
Python Match Case Statement Syntaks
Match case-setningen i Python initialiseres med kamp søkeord etterfulgt av parameteren som skal matches. Deretter defineres ulike tilfeller ved hjelp av sak søkeord og mønsteret for å matche parameteren. De _ er jokertegnet som kjører når alle tilfeller ikke samsvarer med parameterverdien.
match parameter: case pattern1: # code for pattern 1 case pattern2: # code for pattern 2 . . case patterN: # code for pattern N case _: # default code block>
Innholdsfortegnelse
java datatyper
- Enkelt samsvarsuttalelse
- Match sakserklæring med OR-operatør
- Match case Statement med Python If Condition
- Match saken med sekvensmønsteret
- Match case Statement med Python Dictionary
- Match case Statement med Python Class
- Vanlige spørsmål om Python Match Case Statement
La oss nå se noen eksempler for å vite hvordan matchcase-setningen fungerer i Python.
Enkelt samsvarsuttalelse
I en enkel Python match case-setning sammenlignes den eksakte verdien og matches med case-mønsterverdien. Det er forskjellige testtilfeller og deres korresponderende kode som vil kjøres bare når en sak matches. Ellers er det en standard sak som kjøres når alle de definerte tilfellene ikke samsvarer.
Eksempel: I dette eksemplet vil vi be brukeren om å skrive inn en verdi mellom 1 og 3 og vise det tilsvarende tallet i ord ved å bruke det enkle samsvarsutsagnet.
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()>
Produksjon:
Enter a number between 1 and 3: 5 Number not between 1 and 3>
Match sakserklæring med OR-operatør
Matchetui setningen i Python er ment å være for bare å matche mønstrene og spesifikke søkeord eller parametere. Men vi kan også bruke match case-setning i python når det er mer enn én sak som resulterer i samme utgang. I dette tilfellet kan vi bruke pipe-operator, også kjent som OR-operatør i samsvarsutsagn.
Eksempel: I dette eksemplet vil vi be brukeren om å angi en verdi mellom 1 og 6. Ved å bruke matchcase med OR-operator har vi klubbet parene ett 1 tilfelle hver som vil vise dets tilsvarende nummer i ord.
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()>
Produksjon:
Enter a number between 1 and 6: 4 Three or Four>
Match case Statement med Python If Condition
Vi kan også bruke Python If-tilstand sammen med match case statement når vi i stedet for å matche den eksakte verdien bruker en betingelse. Basert på betingelsen, hvis verdien er True og samsvarer med kasusmønsteret, utføres kodeblokken.
Eksempel: I dette eksemplet vil vi bruke if condition sammen med match case statement for å sjekke om et tall angitt bt bruker-ID positiv, negativ eller null.
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('Positiv') # mønster 2 kasusnummer hvis num< 0: print('Negative') # default pattern case _: print('Zero') runMatch()>
Produksjon:
Enter a number: -15 Negative>
Match saken med sekvensmønsteret
Python match case-setninger brukes ofte for å matche sekvensmønstre som lister og strenger. Det er ganske enkelt og kan bruke posisjonsargumenter for å sjekke mønstrene.
Eksempel: I dette eksemplet bruker vi en python-streng for å sjekke om et tegn er til stede i streng eller ikke bruker matchcase. Vi gir strengen sammen med indeksen til tegnet vi ønsker å se etter i strengen til samsvarssaken. Deretter definerte vi kampsakene for hva den karakteren kunne være.
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()>
Produksjon:
Case 2 matches>
Eksempel: I dette eksemplet bruker vi en python liste for mønstertilpasning. Vi matcher det første elementet i det tapte og brukte også posisjonsargumenter for å matche resten av listen.
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'])>
Produksjon:
No data a a and ['b'] ['b', 'c', 'd'] and e>
Match case Statement med Python Dictionary
Python match case statements kan håndtere ordbok også. Den kan matche en enkelt nøkkel eller flere nøkler. Nøklene og verdiene må ligge i ordboken, hvis det er en feilplassert verdi eller en nøkkel som ikke eksisterer og ikke samsvarer med den faktiske ordboken og verdien, vil saken bli forkastet.
Eksempel: I dette eksemplet bruker vi ordbok med match case statement i python. Vi gir ordbøker med forskjellige data til samsvarstilfellet, og det vil samsvare med ordboknøklene med forskjellige tilfeller.
Python # 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({})>
Produksjon:
java annet hvis
Name:Jay, Age:24 Name:Ed, Salary:25000 Name:Al, Age:27 Data does not exist>
Match case Statement med Python Class
Vi kan også bruke Python-klasser for å matche tilfeller ved å bruke Python match case-setningene. Dette vil gjøre koden veldig ren, ryddig og enda viktigere lett lesbar. Det gjør bruk av Python dataclasses-modulen.
Eksempel: I dette eksemplet opprettet vi to klasser kalt Person og Programmer. Den første tanken etter å ha sett matcherklæringen ville være at programmereren og personen i matchsetningen ville lage en forekomst av de respektive klassene, men det er ikke tilfelle. Den vil sjekke forekomsten med de gitte verdiene. Så tilfellet Programmer(Om, språk = Python, rammeverk = Django) vil ikke opprette en forekomst, men vil sjekke at objektet som sendes hvis navn er forekomst er en reell forekomst av Programmer-klassen, så vil den se etter navnet som er Om , språk som er Python og deretter rammeverk som er Django. På denne måten kan vi se etter verdiene i forekomsten av en hvilken som helst klasse.
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)>
Produksjon:
Name: Om, Language:Python, Framework:Django Name:Rishabh, Language:C++ Name:Vishal Name:Sankalp, Language:Javascript, Framework:React>
Vanlige spørsmål om Python Match Case Statement
Spørsmål: Hva er matchcase-setningen i Python?
A: Match-case statement, også kjent som mønstertilpasning, er en funksjon introdusert i Python 3.10. Det gir en kortfattet og uttrykksfull måte å utføre mønstertilpasning på datastrukturer, for eksempel tupler, lister og klasser. Den lar deg matche verdien av et uttrykk mot en rekke mønstre og utføre den tilsvarende kodeblokken for det matchede mønsteret.
Spørsmål: Hvordan skiller utsagnet samsvarscase seg fra if-elif-else-utsagn?
A: Match-case-setningen er en kraftigere og mer uttrykksfull konstruksjon sammenlignet med if-elif-else-setninger. Mens if-elif-else-setninger er avhengige av boolske uttrykk, kan match-case-setninger matche mønstre basert på strukturen og verdien av dataene. Match-case-setninger gir en mer strukturert og lesbar måte å håndtere flere forhold og utføre forskjellige handlinger basert på disse betingelsene.
Spørsmål: Hva er fordelene med å bruke match-case statement?
A: Match-case-uttalelsen gir flere fordeler, inkludert:
- Konsisitet: Match-case-utsagn lar deg uttrykke kompleks forgreningslogikk på en kortfattet og lesbar måte.
- Lesbarhet: Mønstertilpasning gjør koden mer lesbar og selvforklarende, siden den ligner problemdomenet.
- Sikkerhet: Samsvarsuttalelser gir uttømmende mønstermatching, og sikrer at alle mulige saker blir håndtert.