ما هي جملة match؟
أُضيفت في بايثون 3.10، وهي بديل أنيق عن سلاسل if/elif الطويلة عند
المقارنة بقيمة واحدة مع عدة احتمالات (تشبه switch في اللغات الأخرى):
day = "السبت"
match day:
case "الجمعة":
print("عطلة")
case "السبت":
print("عطلة")
case _:
print("يوم عمل")
case _ هي الحالة الافتراضية (إن لم تطابق أيًّا مما سبق).
مقارنة: if مقابل match
# بـ if/elif
status = 404
if status == 200:
print("ناجح")
elif status == 404:
print("غير موجود")
elif status == 500:
print("خطأ خادم")
else:
print("غير معروف")
# بـ match (أوضح)
match status:
case 200:
print("ناجح")
case 404:
print("غير موجود")
case 500:
print("خطأ خادم")
case _:
print("غير معروف")
دمج عدة قيم في حالة واحدة
استخدم | لمطابقة أكثر من قيمة:
match day:
case "الجمعة" | "السبت":
print("عطلة نهاية الأسبوع")
case _:
print("يوم عمل")
جرّب بنفسك
🐍 محرّر بايثون
...جارٍ تحميل المحرّر
اضغط «تشغيل» لرؤية النتيجة هنا.
أخطاء شائعة
- استخدام
matchفي إصدار بايثون أقدم من 3.10 (غير مدعوم). - نسيان
case _فلا تُعالَج الحالات غير المتوقّعة.
🎯 التالي: lambda والدوال المتقدّمة وrange.