Treci la conținutul principal

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 match o 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

Prompt
Scrie un program Python care folosește o instrucțiune match pentru a afișa numele zilei săptămânii în funcție de numărul zilei. Setează day la 4 și potrivește cazurile 1-7 cu zilele de luni până duminică.
Ieșire: program Python complet

Sintaxă

main.py
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

Prompt
Scrie un program Python care folosește o instrucțiune match cu un caz implicit folosind caracterul underscore _. Setează day la 4, potrivește 6 pentru sâmbătă, 7 pentru duminică și _ pentru mesajul implicit.
Ieșire: program Python complet

Combinarea valorilor

Un singur caz poate verifica mai multe valori. Separă-le cu caracterul pipe |, care aici are rol de „sau”:

Exemplu

Prompt
Scrie un program Python care folosește operatorul pipe | în cazurile match pentru a combina mai multe valori. Potrivește zilele 1-5 ca zile lucrătoare și 6-7 ca weekend.
Ieșire: program Python complet

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

Prompt
Scrie un program Python care folosește condiții if de gardă în cazurile instrucțiunii match. Potrivește tiparele pentru zilele lucrătoare cu condiții pentru lunile aprilie și mai.
Ieșire: program Python complet