Python Match
در پایتون 3.10 به بعد، یک ساختار جدید به نام match
/ case
معرفی شده است که شبیه switch
در زبانهای دیگر عمل میکند و برای الگویابی (Pattern Matching) استفاده میشود.
در این درسنامه، این قابلیت را مرحلهبهمرحله بررسی میکنیم.
🔹 ساختار پایه
🔹 مثال ساده
📌 خروجی:
🔹 چند الگو در یک خط (OR pattern)
میتوان چند مقدار را با هم بررسی کرد:
🔹 الگوهای متغیر (Binding Variables)
میتوان مقداری که در شرط قرار میگیرد را در یک متغیر ذخیره کرد:
📌 خروجی:
🔹 الگو با شرط اضافی (Guards)
میتوان روی یک الگو شرط اضافه کرد:
📌 خروجی:
🔹 الگو برای ساختارهای تو در تو
📌 خروجی:
✅ نکات مهم
-
نیاز به پایتون 3.10 یا بالاتر دارید.
-
علامت
_
به معنی الگوی پیشفرض (default) است. -
میتوان از OR (
|
)، شرط (if)، و الگوهای تو در تو استفاده کرد. -
بر خلاف
switch
در زبانهای دیگر، نیازی بهbreak
نیست.
💡 تمرین پیشنهادی
-
برنامهای بنویس که عددی از کاربر بگیرد و با
match
مشخص کند:-
اگر 1 یا 2 بود: "عدد کوچک"
-
اگر بین 3 تا 5 بود: "عدد متوسط"
-
در غیر این صورت: "عدد بزرگ".
-
-
دیکشنری شامل نوع شکل و ابعاد بگیرد و بسته به نوع شکل (
circle
,rectangle
) محیط یا مساحت را محاسبه کند.
ساختار match
/case
کد را خواناتر و مدیریت چندین شرط پیچیده را سادهتر میکند و جایگزین عالی برای چندین if ... elif ... else
در شرایط خاص است.