🧠 المشغلات المنطقية في بايثون: تحكم ذكي في قراراتك البرمجية

اليوم سنتعلم أداة قوية ستجعل برامجك أكثر ذكاءً وقدرة على اتخاذ القرارات المعقدة: المشغلات المنطقية (Logical Operators).

في البرمجة، كثيراً ما نحتاج إلى التحقق من أكثر من شرط في وقت واحد. تخيل أنك تريد التحقق من أن المستخدم بالغ و لديه رصيد كافٍ لإتمام عملية شراء. هنا تأتي أهمية المشغلات المنطقية لدمج هذه الشروط بسهولة.


💡 ما هي المشغلات المنطقية؟

المشغلات المنطقية هي رموز خاصة تستخدم لربط تعبيرين منطقيين أو أكثر (يُعبر عنهما بـ True أو False) وإنتاج نتيجة منطقية جديدة.

هناك ثلاثة مشغلات منطقية أساسية في بايثون:

  • and (و)
  • or (أو)
  • not (ليس)

هذه المشغلات تعمل مع القيم المنطقية (Boolean) التي تعرفنا عليها سابقاً (True و False).


🔍 المشغل AND (و)

المشغل and يعيد قيمة True فقط إذا كان كلا التعبيرين على جانبه صحيحين. إذا كان أحدهما أو كلاهما خاطئاً، فإن النتيجة تكون False.

جدول الحقيقة لـ AND:

التعبير الأول التعبير الثاني النتيجة
True True True
True False False
False True False
False False False

مثال عملي:

# التحقق من أن العمر أكبر من 18 والرصيد أكبر من 100
age = 20
balance = 150

# استخدام AND للتحقق من الشرطين معاً
can_purchase = (age > 18) and (balance > 100)
print(can_purchase)  # سيطبع: True

# مثال آخر
is_weekend = False
has_invitation = True

can_attend_party = is_weekend and has_invitation
print(can_attend_party)  # سيطبع: False (لأنه ليس عطلة نهاية أسبوع)

🔄 المشغل OR (أو)

المشغل or يعيد قيمة True إذا كان أحد التعبيرين على الأقل صحيحاً. يعيد False فقط إذا كان كلا التعبيرين خاطئين.

جدول الحقيقة لـ OR:

التعبير الأول التعبير الثاني النتيجة
True True True
True False True
False True True
False False False

مثال عملي:

# التحقق من وجود خصم للموظفين أو للعملاء الجدد
is_employee = True
is_new_customer = False

has_discount = is_employee or is_new_customer
print(has_discount)  # سيطبع: True (لأن المستخدم موظف)

# مثال آخر: دخول مجاني للأطفال أو كبار السن
age = 65
is_child = age < 12
is_senior = age >= 65

free_entry = is_child or is_senior
print(free_entry)  # سيطبع: True

🔁 المشغل NOT (ليس)

المشغل not هو مشغل أحادي (يعمل على تعبير واحد فقط) ويعكس القيمة المنطقية. إذا كان التعبير صحيحاً يصبح خاطئاً، والعكس صحيح.

جدول الحقيقة لـ NOT:

التعبير النتيجة
True False
False True

مثال عملي:

# عكس حالة المستخدم
is_logged_in = False

# التحقق من أن المستخدم غير مسجل دخول
is_logged_out = not is_logged_in
print(is_logged_out)  # سيطبع: True

# مثال آخر: التحقق من أن المنتج غير متوفر
is_available = True
is_out_of_stock = not is_available
print(is_out_of_stock)  # سيطبع: False

🧩 دمج المشغلات المنطقية مع جمل if

يمكننا استخدام المشغلات المنطقية مع جمل الشرط if لإنشاء شروط أكثر تعقيداً وذكاءً.

مثال متكامل:

# نظام دخول إلى نادي
age = 25
has_membership = True
is_guest = False

# يمكن الدخول إذا كان عمره 18+ و(لديه عضوية أو هو ضيف)
if age >= 18 and (has_membership or is_guest):
    print("مرحباً! يمكنك الدخول.")  # هذه الجملة ستُنفذ
else:
    print("عذراً، لا يمكنك الدخول.")

# مثال آخر: تحقق من أن العمر ليس تحت السن القانوني
min_age = 18
user_age = 16

if not (user_age >= min_age):
    print("أنت تحت السن القانوني لهذا المحتوى.")

💪 تدريب عملي

لنجرب مثالاً يدمج كل ما تعلمناه:

# نظام تصنيف الأفلام
age = 15
parental_consent = True
movie_rating = "PG-13"  # تصنيف الأفلام المناسب لمن فوق 13 سنة

# يمكن المشاهدة إذا كان العمر مناسباً أو بموافقة الوالدين
can_watch = (age >= 13) or (parental_consent and age >= 10)

if can_watch:
    print("يمكنك مشاهدة الفيلم! 🎬")
else:
    print("هذا الفيلم غير مناسب لعمرك.")

🎯 ملخص الدرس

  • and: يعيد True فقط إذا كان كلا الشرطين صحيحين
  • or: يعيد True إذا كان أحد الشرطين على الأقل صحيحاً
  • not: يعكس القيمة المنطقية (يغير True إلى False والعكس)
  • يمكن دمج هذه المشغلات لإنشاء شروط معقدة وذكية
  • تستخدم بكثرة مع جمل الشرط if لاتخاذ قرارات برمجية متقدمة