🧠 المشغلات المنطقية في بايثون: تحكم ذكي في قراراتك البرمجية
اليوم سنتعلم أداة قوية ستجعل برامجك أكثر ذكاءً وقدرة على اتخاذ القرارات المعقدة: المشغلات المنطقية (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لاتخاذ قرارات برمجية متقدمة
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال