Instrucțiunea match în Python
O instrucțiune match alege ce să facă în funcție de valoarea pe care o primește.
Când altfel ai avea nevoie de multe instrucțiuni if..else, match le poate lua locul.
Dintre mai multe blocuri de cod, alege unul de executat.
Iată pașii:
- Python evaluează expresia
matcho singură dată. - Apoi compară rezultatul cu valoarea fiecărui
case. - Când o valoare se potrivește, se execută blocul de cod de sub acel caz.
În exemplul de mai jos, numărul unei zile a săptămânii decide ce nume de zi este afișat:
Exemplu
Ieșire: program Python complet
day = 4
match day:
case 1:
print("Luni")
case 2:
print("Marți")
case 3:
print("Miercuri")
case 4:
print("Joi")
case 5:
print("Vineri")
case 6:
print("Sâmbătă")
case 7:
print("Duminică")
Sintaxă
match expression:
case x:
code block
case y:
code block
case z:
code block
Valoare implicită
Ca să execuți un bloc când niciun alt caz nu s-a potrivit, încheie cu un caz a cărui valoare este caracterul underscore _.
Deoarece _ se potrivește cu orice, poziția lui contează: se comportă ca valoare implicită doar ca ultimul caz.
Exemplu
Ieșire: program Python complet
day = 4
match day:
case 6:
print("Astăzi este sâmbătă")
case 7:
print("Astăzi este duminică")
case _:
print("Aștept cu nerăbdare weekendul")
Combinarea valorilor
Un singur caz poate verifica mai multe valori. Separă-le cu caracterul pipe |, care aici are rol de „sau”:
Exemplu
Ieșire: program Python complet
day = 4
match day:
case 1 | 2 | 3 | 4 | 5:
print("Astăzi este o zi lucrătoare")
case 6 | 7:
print("Iubesc weekendurile!")
Instrucțiuni if ca gărzi
Un caz poate avea și o condiție suplimentară. Adaugă pur și simplu o instrucțiune if după valorile lui:
Exemplu
Ieșire: program Python complet
month = 5
day = 4
match day:
case 1 | 2 | 3 | 4 | 5 if month == 4:
print("O zi lucrătoare în aprilie")
case 1 | 2 | 3 | 4 | 5 if month == 5:
print("O zi lucrătoare în mai")
case _:
print("Nicio potrivire")