Els desenvolupadors que provenen de llenguatges com C/C++ o Java saben que hi ha una declaració condicional coneguda com a Canvia de majúscules . Això Cas de correspondència és el Switch Case de Python que es va introduir a Python 3.10. Aquí primer hem de passar un paràmetre i després intentar comprovar en quin cas el paràmetre s'està satisfet. Si trobem una coincidència executarem algun codi i si no hi ha cap coincidència, es produirà una acció per defecte.
Sintaxi de la instrucció de majúscules i minúscules de Python
La declaració de coincidència en Python s'inicia amb el partit paraula clau seguida del paràmetre que s'ha de fer coincidir. A continuació, es defineixen diversos casos mitjançant el Caixa paraula clau i el patró per coincidir amb el paràmetre. El _ és el caràcter comodí que s'executa quan tots els casos no coincideixen amb el valor del paràmetre.
match parameter: case pattern1: # code for pattern 1 case pattern2: # code for pattern 2 . . case patterN: # code for pattern N case _: # default code block>
Taula de contingut
com seleccionar columnes de diferents taules en sql
- Declaració de cas de correspondència simple
- Relaciona la declaració de casos amb l'operador OR
- Coincideix la declaració de minúscules i minúscules amb la condició de Python If
- Relaciona majúscules i minúscules amb el patró de seqüència
- Relaciona la declaració de minúscules i minúscules amb el diccionari Python
- Coincideix la declaració de casos amb la classe Python
- Python Match Case Statement FAQ
Ara, vegem uns quants exemples per saber com funciona la declaració de match case a Python.
Declaració de cas de concordança simple
En una declaració simple de coincidència de majúscules i minúscules de Python, es compara el valor exacte i es compara amb el valor del patró de majúscules i minúscules. Hi ha diferents casos de prova i el seu codi corresponent que només s'executaran quan coincideixi un cas. En cas contrari, hi ha un cas per defecte que s'executa quan tots els casos definits no coincideixen.
Exemple: En aquest exemple demanarem a l'usuari que introdueixi un valor entre 1 i 3 i que mostri el seu número corresponent en paraules utilitzant la declaració simple de coincidència entre minúscules i minúscules.
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()> Sortida:
Enter a number between 1 and 3: 5 Number not between 1 and 3>
Relaciona la declaració de casos amb l'operador OR
Cas de partit La declaració a Python només ha de fer coincidir els patrons i paraules clau o paràmetres específics. Però també podem utilitzar la declaració de coincidència de cas a Python quan hi ha més d'un cas que produeix la mateixa sortida. En aquest cas, podem utilitzar l'operador de canonades, també conegut com a operador OR a la declaració de match case.
Exemple: En aquest exemple demanarem a l'usuari que introdueixi un valor entre 1 i 6. A continuació, utilitzant l'operador de coincidència amb OR, hem marcat els parells amb un cas d'1 cadascun, que mostrarà el seu número corresponent en paraules.
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()> Sortida:
Enter a number between 1 and 6: 4 Three or Four>
Coincideix la declaració de minúscules i minúscules amb la condició de Python If
També podem utilitzar el Condició Python If juntament amb la instrucció match case quan en comptes de fer coincidir el valor exacte, utilitzem una condició. En funció de la condició, si el valor és True i coincideix amb el patró de minúscules, s'executa el bloc de codi.
Exemple: En aquest exemple, utilitzarem la condició if juntament amb la declaració de coincidència amb minúscules per comprovar si s'ha introduït un nombre amb l'identificador d'usuari positiu, negatiu o zero.
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('Positiu') # patró 2 cas num si num< 0: print('Negative') # default pattern case _: print('Zero') runMatch()> Sortida:
Enter a number: -15 Negative>
Relaciona majúscules i minúscules amb el patró de seqüència
Les declaracions de coincidència de majúscules i minúscules de Python s'utilitzen habitualment per fer coincidir patrons de seqüències com ara llistes i cadenes. És bastant fàcil i pot utilitzar arguments posicionals per comprovar els patrons.
Exemple: En aquest exemple, estem utilitzant una cadena Python per comprovar si hi ha un caràcter al fitxer corda o no utilitzar majúscules i minúscules. Proporcionem la cadena juntament amb l'índex del caràcter que volem cercar a la cadena de la coincidència entre majúscules i minúscules. Després vam definir els casos de concordança pel que fa a quin podria ser aquest personatge.
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()> Sortida:
Case 2 matches>
Exemple: En aquest exemple estem utilitzant a llista de python per a la concordança de patrons. Estem fent coincidir el primer element del perdut i també hem utilitzat arguments posicionals per fer coincidir la resta de la llista.
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'])> Sortida:
No data a a and ['b'] ['b', 'c', 'd'] and e>
Relaciona la declaració de minúscules i minúscules amb el diccionari Python
Les declaracions de cas de coincidència de Python poden gestionar diccionari també. Pot coincidir amb una sola clau o diverses claus. Les claus i els valors han de residir al diccionari, si hi ha algun valor fora de lloc o alguna clau que no existeix i no coincideix amb el diccionari i el valor reals, aquest cas es descartarà.
Exemple: En aquest exemple, estem utilitzant un diccionari amb una declaració de coincidència entre minúscules i minúscules a Python. Estem proporcionant diccionaris amb dades diferents al cas de coincidència, i coincidirà amb les claus del diccionari amb diferents casos proporcionats.
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({})> Sortida:
descarregar vlc youtube
Name:Jay, Age:24 Name:Ed, Salary:25000 Name:Al, Age:27 Data does not exist>
Coincideix la declaració de casos amb la classe Python
També podem utilitzar Classes de Python per fer coincidir casos utilitzant les declaracions de coincidència de minúscules de Python. Això farà que el codi sigui molt net, net i, sobretot, fàcil de llegir. Fa ús del mòdul de classes de dades de Python.
Exemple: En aquest exemple, hem creat dues classes anomenades Persona i Programador. El primer pensament després de veure la declaració de coincidència seria que el programador i la persona dins de la declaració de coincidència crearan una instància de les classes respectives, però no és així. Comprovarà la instància amb els valors donats. Per tant, el cas Programador (Om, llenguatge = Python, framework = Django) no crearà una instància, sinó que comprovarà que l'objecte passat el nom del qual és instància és una instància real de la classe Programador, i després comprovarà el nom que és Om. , llenguatge que és Python i després framework que és Django. D'aquesta manera podem comprovar els valors a la instància de qualsevol classe.
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)> Sortida:
Name: Om, Language:Python, Framework:Django Name:Rishabh, Language:C++ Name:Vishal Name:Sankalp, Language:Javascript, Framework:React>
Python Match Case Statement FAQ
P: Quina és la declaració de match case a Python?
R: La declaració de coincidència entre majúscules i minúscules, també coneguda com a concordança de patrons, és una característica introduïda a Python 3.10. Proporciona una manera concisa i expressiva de realitzar la concordança de patrons en estructures de dades, com ara tuples, llistes i classes. Us permet relacionar el valor d'una expressió amb una sèrie de patrons i executar el bloc de codi corresponent per al patró coincident.
P: En què difereix la declaració de coincidència entre cas i cas de les declaracions if-elif-else?
R: La declaració de coincidència entre majúscules i minúscules és una construcció més potent i expressiva en comparació amb les declaracions if-elif-else. Mentre que les declaracions if-elif-else es basen en expressions booleanes, les declaracions de coincidència entre majúscules i minúscules poden coincidir amb patrons basats en l'estructura i el valor de les dades. Les declaracions de coincidència entre majúscules i minúscules proporcionen una manera més estructurada i llegible de gestionar diverses condicions i realitzar diferents accions basades en aquestes condicions.
P: Quins són els avantatges d'utilitzar la declaració de cas de coincidència?
R: La declaració de cas de concordança ofereix diversos avantatges, com ara:
- Concisió: les declaracions de coincidència entre majúscules i minúscules us permeten expressar una lògica de ramificació complexa d'una manera concisa i llegible.
- Llegibilitat: la concordança de patrons fa que el codi sigui més llegible i s'explica per si mateix, ja que s'assembla molt al domini del problema.
- Seguretat: les declaracions de coincidència entre majúscules i minúscules proporcionen una concordança exhaustiva de patrons, assegurant que es gestionen tots els casos possibles.