match (Match)
«دستور match پایتون» یک «سوئیچ چندحالته» است. یعنی با یک مقدار ورودی، سریع به «case» مناسب می پرد. بنابراین کد کوتاه تر و خواناتر می شود.
دستور match پایتون چیست؟
به جای چندین «اگر-و-گرنه»، از match استفاده کن. یک مقدار بررسی می شود و اولین case سازگار اجرا می شود.
قالب دستوری
match expression:
case x:
print("x matched")
case y:
print("y matched")
case z:
print("z matched")
نمونه ساده: نام روز هفته
عدد روز را بده. سپس نام همان روز چاپ می شود.
day = 4
match day:
case 1:
print("Monday")
case 2:
print("Tuesday")
case 3:
print("Wednesday")
case 4:
print("Thursday")
case 5:
print("Friday")
case 6:
print("Saturday")
case 7:
print("Sunday")
حالت پیش فرض با _
علامت «_» همیشه می خورد. آن را آخرین case بگذار تا پیش فرض باشد.
day = 4
match day:
case 6:
print("Today is Saturday")
case 7:
print("Today is Sunday")
case _:
print("Looking forward to the Weekend")
ترکیب چند مقدار با |
با «|» چند مقدار را یکجا بگیر. مانند «یا (OR)» عمل می کند.
day = 4
match day:
case 1 | 2 | 3 | 4 | 5:
print("Today is a weekday")
case 6 | 7:
print("I love weekends!")
گارد if داخل case
می توانی شرط اضافه بگذاری. به آن «گارد (Guard)» می گویند.
month = 5
day = 4
match day:
case 1 | 2 | 3 | 4 | 5 if month == 4:
print("A weekday in April")
case 1 | 2 | 3 | 4 | 5 if month == 5:
print("A weekday in May")
case _:
print("No match")
نکته: case پیش فرض «_» باید انتهای لیست بیاید. در غیر این صورت، بقیه case ها دیگر بررسی نمی شوند.
گام های تمرینی
- یک match برای ماه ها بساز.
- برای روزهای کاری، حالت ترکیبی بنویس.
- یک گارد if برای ماه خاص اضافه کن.
جمع بندی سریع
- match جایگزین ifهای پیاپی است.
- case «_» نقش پیش فرض دارد.
- «|» چند مقدار را پوشش می دهد.
- گارد if شرط اضافه می آورد.
نکته: برای مرور منطق شرط ها، صفحه if-else و عملگرها در عملگرهای منطقی را ببین. همچنین لینک خود صفحه دستور match پایتون را نگه دار.