القيم المنطقية وعوامل المقارنة
| العامل أو المفهوم المنطقي | الوظيفة والتأثير البرمجي | مثال الشيفرة والنتيجة المتوقعة |
|---|---|---|
| القيم المنطقية Booleans | نوع بيانات أساسي يمثل حالتي الصدق أو الكذب ولا يقبل إلا قيمتين بحروف كبيرة True أو False | أساس اتخاذ القرار البرمجي |
| عامل التساوي دبل يساوي | يفحص ما إذا كانت القيمة اليمنى تطابق وتساوي القيمة اليسرى تماماً | كود 5 دبل يساوي 5 يعيد True |
| عامل عدم التساوي لا يساوي | يفحص ما إذا كانت القيمة اليمنى تختلف عن القيمة اليسرى ولا تطابقها | كود 5 علامة تعجب يساوي 3 يعيد True |
| عامل أكبر من | يفحص ما إذا كان الطرف الأيسر يحمل قيمة أعلى برقمياً من الطرف الأيمن | كود 7 أكبر من 3 يعيد True |
| عامل أصغر من | يفحص ما إذا كان الطرف الأيسر يحمل قيمة أدنى رقمياً من الطرف الأيمن | كود 2 أصغر من 10 يعيد True |
| عامل أكبر من أو يساوي | يفحص ما إذا كان الطرف الأيسر أكبر من أو يطابق تماماً الطرف الأيمن | كود 5 أكبر من أو يساوي 5 يعيد True |
| عامل أصغر من أو يساوي | يفحص ما إذا كان الطرف الأيسر أصغر من أو يطابق تماماً الطرف الأيمن | كود 4 أصغر من أو يساوي 3 يعيد False |
| معامل التعيين الإسنادي يساوي | يُستخدم لتخزين القيمة من الطرف الأيمن ووضعها داخل المتغير في الطرف الأيسر | كود x يساوي 5 يقوم بإنشاء متغير |
| معامل المقارنة المنطقي دبل يساوي | يُستخدم لاختبار التكافؤ بين قيمتين دون التعديل عليهما ويعود بقيمة منطقية | كود x دبل يساوي 5 يفحص قيمة المتغير |
القيم المنطقية وعوامل المقارنة (Booleans & Comparison Operators)
1. مفهوم القيم المنطقية (Booleans) في Python
تُمثل القيم المنطقية (Boolean Data Type) الركيزة الأساسية لتدفق البرامج واتخاذ القرارات الذكية داخل الشيفرة البرمجية. في لغة بايثون، ينتمي هذا النوع إلى الكلاس bool ولا يدعم سوى قيمتين ثنائيتين فقط لا غير: True (صحيح/صادق) و False (خاطئ/كاذب).
يشترط في بايثون كتابة الحرف الأول من هذه القيم دائماً بحجم كبير (Capitalized)، حيث تُعتبر الكلمتان كلمات محجوزة (Reserved Keywords) لنواة اللغة.
2. عوامل المقارنة (Comparison/Relational Operators) عوامل المقارنة هي رموز برمجية تُستخدم لتقييم العلاقة الرياضية أو المنطقية بين قيمتين أو متغيرين (تُسمى الأطراف أو Operands). نتيجة تنفيذ أي عملية مقارنة في بايثون هي قيمة منطقية واحدة دائماً (True أو False).
أ) التساوي التام (==) وعدم التساوي (!=) عامل == يفحص التكافؤ؛ فإذا كانت القيمتان متساويتين في القيمة، تكون النتيجة True.
عامل != يفحص الاختلاف؛ فإذا كانت القيمتان مختلفتين، تكون النتيجة True.
ب) المقارنات الحجمية (>, <, >=, <=) تُستخدم للمقارنة الرقمية القياسية، كما يمكن استخدامها مع النصوص بناءً على الترتيب الأبجدي في أنظمة الترميز (Unicode).
>: أكبر من.
<: أصغر من.
>=: أكبر من أو يساوي (تعيد True إذا تحقق أحد الشرطين: الأكبر أو المساوي).
<=: أصغر من أو يساوي.
3. الفرق الجوهري بين معامل = ومعامل == يقع المطورون المبتدئون كثيراً في خلط منطقي بين علامة الساوى المفردة وعلامة الساوى المزدوجة، على الرغم من أن لكل منهما وظيفة مختلفة تماماً في المعمارية البرمجية:
أولاً: عامل الإسناد والتعيين (= - Assignment Operator) هذا المعامل ليس عملية رياضية أو مقارنة، بل هو أمر تنفيذي للمحرك. يقوم بأخذ القيمة الموجودة في الجانب الأيمن (Right-hand side) ويقوم بإنشائها وضخها داخل المتغير في الجانب الأيسر (Left-hand side). هذا السطر لا ينتج عنه True أو False.
ثانياً: عامل المقارنة الشرطي (== - Equality Operator) هذا المعامل عبارة عن سؤال منطقي يوجهه البرنامج للذاكرة. يقوم بفحص القيمتين على الجانبين دون تغيير محتويات أي متغير، وينتج عن هذا السطر قيمة منطقية يتم استخدامها لاحقاً في الشروط if statements.
| 1 | # عوامل المقارنة |
| 2 | x = 10 |
| 3 | y = 20 |
| 4 | |
| 5 | print(x == y) # False |
| 6 | print(x != y) # True |
| 7 | print(x < y) # True |
| 8 | print(x > y) # False |
| 9 | print(x >= 10) # True |
| 10 | print(y <= 20) # True |
مثال 1: عوامل المقارنة
| 1 | age = 18 |
| 2 | |
| 3 | print(age >= 18) # True - بالغ |
| 4 | print(age == 21) # False - ليس 21 |
| 5 | print(age != 0) # True - ليس صفر |
| 6 | |
| 7 | # مقارنة النصوص |
| 8 | name = "Python" |
| 9 | print(name == "Python") # True |
| 10 | print(name > "Java") # True (ترتيب أبجدي) |
مثال 2: القيم الصحيحة والخاطئة (Truthy/Falsy)
| 1 | # Falsy values (تعامَل كـ False) |
| 2 | print(bool(0)) # False |
| 3 | print(bool("")) # False |
| 4 | print(bool([])) # False |
| 5 | print(bool(None)) # False |
| 6 | |
| 7 | # Truthy values (تعامَل كـ True) |
| 8 | print(bool(1)) # True |
| 9 | print(bool("text")) # True |
| 10 | print(bool([1, 2])) # True |