Razvijalci, ki prihajajo iz jezikov, kot sta C/C++ ali Java, vedo, da obstaja pogojni stavek, znan kot a Preklopna torbica . to Match Case je Switch Case Pythona, ki je bil predstavljen leta Python 3.10. Tukaj moramo najprej posredovati parameter in nato poskusiti preveriti, s katerimi velikimi in malimi črkami je parameter zadovoljen. Če najdemo ujemanje, bomo izvedli neko kodo in če ujemanja sploh ni, bo izvedeno privzeto dejanje.
Sintaksa izjave o ujemanju velikih in malih črk v Pythonu
Izjava o ujemanju velikih in malih črk v Pythonu je inicializirana z tekma ključna beseda, ki ji sledi parameter za ujemanje. Nato so različni primeri definirani z uporabo Ovitek ključno besedo in vzorec za ujemanje s parametrom. The _ je nadomestni znak, ki se zažene, ko se vsi primeri ne ujemajo z vrednostjo parametra.
match parameter: case pattern1: # code for pattern 1 case pattern2: # code for pattern 2 . . case patterN: # code for pattern N case _: # default code block>
Kazalo
niz za char v Javi
- Enostavna izjava o ujemanju
- Ujemanje velike in male črke z operatorjem ALI
- Poveži stavek Case s pogojem If v Pythonu
- Ujemanje velikih in malih črk z vzorcem zaporedja
- Ujemanje velike in male črke s slovarjem Python
- Ujemanje velike in male črke z razredom Python
- Python Match Case Statement Pogosta vprašanja
Zdaj pa si oglejmo nekaj primerov, da bomo vedeli, kako stavek za ujemanje velikih in malih črk deluje v Pythonu.
Enostavna izjava o ujemanju
V preprostem stavku za ujemanje primerov v Pythonu se točna vrednost primerja in ujema z vrednostjo vzorca velikih in malih črk. Obstajajo različni testni primeri in njihova ustrezna koda, ki se bo izvedla samo, če se primer ujema. V nasprotnem primeru obstaja privzeti primer, ki se izvede, ko se ne ujemajo vsi definirani primeri.
primer: V tem primeru bomo prosili uporabnika, da vnese vrednost med 1 in 3 in prikaže njeno ustrezno številko z besedami z uporabo preprostega stavka za ujemanje velikih in malih črk.
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()> Izhod:
Enter a number between 1 and 3: 5 Number not between 1 and 3>
Ujemanje velike in male črke z operatorjem ALI
Primer vžigalice v Pythonu so namenjeni samo za ujemanje vzorcev in določenih ključnih besed ali parametrov. Lahko pa uporabimo tudi stavek match case v pythonu, ko obstaja več kot en primer, ki povzroči enak rezultat. V tem primeru lahko uporabimo cevni operater, znan tudi kot OR operator v stavku primerov ujemanja.
primer: V tem primeru bomo od uporabnika zahtevali, da vnese vrednost med 1 in 6. Nato smo z uporabo velikega in malega primerka z operatorjem ALI razdelili pare v klub po en primer 1, ki bo prikazal ustrezno številko z besedami.
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()> Izhod:
Enter a number between 1 and 6: 4 Three or Four>
Poveži stavek Case s pogojem If v Pythonu
Uporabimo lahko tudi Pogoj Python If skupaj s stavkom primerov in primerov ujemanja, ko namesto ujemanja z natančno vrednostjo uporabimo pogoj. Na podlagi pogoja, če je vrednost True in se ujema z vzorcem velikih in malih črk, se blok kode izvede.
primer: V tem primeru bomo uporabili pogoj if skupaj z izjavo o ujemanju velikih in malih črk, da preverimo, ali je vneseno število poleg ID-ja uporabnika pozitivno, negativno ali nič.
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('Pozitivno') # vzorec 2 primer št., če št< 0: print('Negative') # default pattern case _: print('Zero') runMatch()> Izhod:
Enter a number: -15 Negative>
Ujemanje velikih in malih črk z vzorcem zaporedja
Stavki za ujemanje velikih in malih črk Python se običajno uporabljajo za ujemanje vzorcev zaporedja, kot so seznami in nizi. Je precej enostaven in lahko uporablja pozicijske argumente za preverjanje vzorcev.
primer: V tem primeru uporabljamo niz python, da preverimo, ali je znak prisoten v vrvica ali neuporaba velikih in malih črk. Niz podamo skupaj z indeksom znaka, ki ga želimo preveriti v nizu, za ujemanje velikih in malih črk. Nato smo definirali primere ujemanja glede tega, kaj bi ta znak lahko bil.
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()> Izhod:
Case 2 matches>
primer: V tem primeru uporabljamo a seznam python za ujemanje vzorcev. Ujemamo se s prvim elementom izgubljenega in uporabili smo tudi pozicijske argumente za ujemanje s preostalim seznamom.
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'])> Izhod:
No data a a and ['b'] ['b', 'c', 'd'] and e>
Ujemanje velike in male črke s slovarjem Python
Python lahko obravnava izjave o ujemanju velikih in malih črk slovar prav tako. Lahko se ujema z enim ključem ali več ključi. Ključi in vrednosti morajo biti v slovarju; če obstaja kakšna napačno postavljena vrednost ali kateri koli ključ, ki ne obstaja in se ne ujema z dejanskim slovarjem in vrednostjo, bo ta primer zavržen.
primer: V tem primeru uporabljamo slovar s stavkom za ujemanje velikih in malih črk v pythonu. Zagotavljamo slovarje z različnimi podatki za ujemanje velikih in malih črk, ki se bo ujemal s slovarskimi ključi z različnimi navedenimi velikimi in malimi črkami.
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({})> Izhod:
Name:Jay, Age:24 Name:Ed, Salary:25000 Name:Al, Age:27 Data does not exist>
Ujemanje velike in male črke z razredom Python
Lahko tudi uporabimo Razredi Python za ujemanje primerov z uporabo stavkov za ujemanje primerov Python. Tako bo koda zelo čista, urejena in, kar je še pomembneje, lahko berljiva. Uporablja modul podatkovnih razredov Python.
primer: V tem primeru smo ustvarili dva razreda, imenovana Oseba in Programer. Prva misel po ogledu izjave o ujemanju bi bila, da bi programer in oseba znotraj izjave o ujemanju ustvarila primerek ustreznih razredov, vendar ni tako. Preveril bo primerek z danimi vrednostmi. Torej primer Programmer(Om, jezik = Python, framework = Django) ne bo ustvaril primerka, ampak bo preveril, ali je posredovani objekt, katerega ime je primerek, pravi primerek razreda Programmer, nato bo preveril ime, ki je Om , jezik, ki je Python, in nato okvir, ki je Django. Tako lahko preverimo vrednosti v primerku katerega koli razreda.
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)> Izhod:
ne
Name: Om, Language:Python, Framework:Django Name:Rishabh, Language:C++ Name:Vishal Name:Sankalp, Language:Javascript, Framework:React>
Python Match Case Statement Pogosta vprašanja
V: Kaj je izjava o ujemanju velikih in malih črk v Pythonu?
O: Izjava match-case, znana tudi kot ujemanje vzorcev, je funkcija, predstavljena v Pythonu 3.10. Zagotavlja jedrnat in izrazit način za izvajanje ujemanja vzorcev na podatkovnih strukturah, kot so tuple, seznami in razredi. Omogoča ujemanje vrednosti izraza z nizom vzorcev in izvedbo ustreznega bloka kode za ujemajoči se vzorec.
V: Kako se stavek za ujemanje velikih in malih črk razlikuje od stavkov if-elif-else?
O: Izjava match-case je močnejši in izrazitejši konstrukt v primerjavi s stavki if-elif-else. Medtem ko se stavki if-elif-else opirajo na logične izraze, se lahko stavki ujemanja primerov ujemajo z vzorci na podlagi strukture in vrednosti podatkov. Izjave primerov in primerov zagotavljajo bolj strukturiran in berljiv način za obravnavanje več pogojev in izvajanje različnih dejanj na podlagi teh pogojev.
V: Kakšne so prednosti uporabe izjave o ujemanju velikih in malih črk?
O: Izjava o ujemanju velikih in malih črk ponuja številne prednosti, vključno z:
- Jedrnatost: Stavki za ujemanje primerov vam omogočajo, da na jedrnat in berljiv način izrazite zapleteno logiko razvejanja.
- Berljivost: Ujemanje vzorcev naredi kodo bolj berljivo in samoumevno, saj je zelo podobna problematični domeni.
- Varnost: Izjave o ujemanju primerov zagotavljajo izčrpno ujemanje vzorcev in zagotavljajo, da so obravnavani vsi možni primeri.