في الدروس السابقة من كورس أساسيات بايثون تعلمنا أنواع بيانات مهمة مثل Lists و Tuples و Dictionaries و Sets. واليوم نكمل مع نوع بسيط جدًا لكنه مهم في كل برنامج تقريبًا: Boolean.
القيم المنطقية أو Boolean في Python هي القيم التي تكون إمّا True أو False. يعني ببساطة: نعم أو لا، صحيح أو خطأ، الشرط تحقق أو لم يتحقق.
قد يبدو الموضوع بسيطًا، لكنه أساس مهم لفهم الشروط if، والمقارنات، والتحقق من البيانات، واتخاذ القرارات داخل البرنامج.
{getToc} $title={محتوى المقال}
{alertInfo} Boolean في بايثون يعني قيمة منطقية: إما True أو False، وتستخدم غالبًا مع الشروط والمقارنات.
ما هو Boolean في Python؟
الـ Boolean هو نوع بيانات يستخدم للتعبير عن حالتين فقط:
True: وتعني صحيح.False: وتعني خطأ.
مثال بسيط:
is_active = True
is_finished = False
print(is_active)
print(is_finished)
الناتج:
True
False
لاحظ أن True و False في بايثون تُكتب بحرف كبير في البداية، وليس هكذا true أو false.
{alertWarning} في Python يجب كتابة True و False بحرف كبير في البداية، لأن true و false بحروف صغيرة ستسبب خطأ.
لماذا نحتاج Boolean في البرمجة؟
نحتاج Boolean عندما نريد أن يعرف البرنامج هل شيء معين صحيح أم خطأ.
مثلاً:
- هل عمر المستخدم أكبر من 18؟
- هل كلمة المرور صحيحة؟
- هل القائمة فارغة؟
- هل الرقم أكبر من 10؟
- هل المستخدم مسجل الدخول؟
كل هذه الأسئلة إجابتها تكون غالبًا True أو False.
المقارنات في بايثون ترجع Boolean
عندما تستخدم عمليات المقارنة في Python، تكون النتيجة دائمًا قيمة Boolean.
مثال:
print(5 > 3)
print(10 == 7)
print(4 != 4)
الناتج:
True
False
False
شرح النتيجة:
5 > 3صحيحة، لذلك النتيجةTrue.10 == 7غير صحيحة، لذلك النتيجةFalse.4 != 4غير صحيحة، لأن 4 تساوي 4، لذلك النتيجةFalse.
أهم معاملات المقارنة في Python
هذه أهم معاملات المقارنة التي ترجع Boolean:
| المعامل | المعنى | مثال | الناتج |
|---|---|---|---|
== |
يساوي | 5 == 5 |
True |
!= |
لا يساوي | 5 != 3 |
True |
> |
أكبر من | 7 > 2 |
True |
< |
أصغر من | 7 < 2 |
False |
>= |
أكبر من أو يساوي | 5 >= 5 |
True |
<= |
أصغر من أو يساوي | 4 <= 9 |
True |
استخدام Boolean داخل if
أكثر مكان ستستخدم فيه Boolean هو داخل جملة الشرط if.
مثال:
age = 20
if age >= 18:
print("مسموح بالدخول")
else:
print("غير مسموح بالدخول")
هنا الشرط age >= 18 يرجع True، لذلك سيتم تنفيذ السطر الموجود داخل if.
الناتج:
مسموح بالدخول
{alertSuccess} جملة if تعتمد على نتيجة منطقية: إذا كانت True تنفذ الكود، وإذا كانت False تنتقل إلى else أو تتجاهل الكتلة.
مثال عملي: التحقق من كلمة المرور
لنفترض أنك تريد التحقق هل كلمة المرور التي كتبها المستخدم صحيحة أم لا.
password = "python123"
is_correct = password == "python123"
print(is_correct)
الناتج:
True
المتغير is_correct هنا يحمل قيمة Boolean، لأن نتيجة المقارنة كانت صحيحة.
ويمكن استخدامه مباشرة داخل if:
password = "python123"
is_correct = password == "python123"
if is_correct:
print("تم تسجيل الدخول")
else:
print("كلمة المرور غير صحيحة")
الدالة bool() في Python
الدالة bool() تحول القيمة إلى Boolean، أي ترجع هل القيمة تعتبر True أم False.
print(bool(10))
print(bool(0))
print(bool("Python"))
print(bool(""))
الناتج:
True
False
True
False
القاعدة العامة:
- القيم الممتلئة غالبًا تعتبر
True. - القيم الفارغة أو الصفر غالبًا تعتبر
False.
القيم التي تعتبر False في بايثون
في Python هناك قيم معينة تعتبر False عند استخدامها داخل شرط.
| القيمة | المعنى | نتيجة bool() |
|---|---|---|
0 |
الرقم صفر | False |
"" |
نص فارغ | False |
[] |
قائمة فارغة | False |
() |
Tuple فارغة | False |
{} |
Dictionary فارغ | False |
set() |
Set فارغة | False |
None |
لا توجد قيمة | False |
أمثلة على القيم الفارغة داخل if
يمكنك استخدام القيم مباشرة داخل if بدون كتابة مقارنة طويلة.
مثال مع قائمة:
items = []
if items:
print("القائمة تحتوي على عناصر")
else:
print("القائمة فارغة")
الناتج:
القائمة فارغة
لأن القائمة الفارغة [] تعتبر False.
مثال مع نص:
name = ""
if name:
print("تم إدخال الاسم")
else:
print("الاسم فارغ")
الناتج:
الاسم فارغ
{alertInfo} في بايثون يمكنك اختبار النصوص والقوائم مباشرة داخل if، فإذا كانت فارغة تعتبر False.
استخدام and و or و not مع Boolean
عند التعامل مع Boolean ستحتاج غالبًا إلى المعاملات المنطقية:
and: كل الشروط يجب أن تكون صحيحة.or: يكفي أن يكون شرط واحد صحيحًا.not: تعكس النتيجة.
مثال على and
age = 20
has_card = True
if age >= 18 and has_card:
print("مسموح بالدخول")
هنا يجب أن يكون العمر مناسبًا، ويجب أن تكون البطاقة موجودة.
مثال على or
is_admin = False
is_owner = True
if is_admin or is_owner:
print("لديك صلاحية")
هنا يكفي أن يكون المستخدم مديرًا أو مالكًا.
مثال على not
is_logged_in = False
if not is_logged_in:
print("يرجى تسجيل الدخول")
المعامل not عكس القيمة من False إلى True.
الفرق بين = و == في Boolean
من أكثر الأخطاء الشائعة عند المبتدئين الخلط بين = و ==.
=تستخدم لإسناد قيمة إلى متغير.==تستخدم للمقارنة بين قيمتين.
مثال:
x = 10 # إسناد قيمة
print(x == 10) # مقارنة
الناتج:
True
{alertWarning} استخدم = لتخزين قيمة داخل متغير، واستخدم == للمقارنة والحصول على True أو False.
هل True و False أرقام في بايثون؟
في بايثون يمكن التعامل مع True كأنه يساوي 1، و False كأنه يساوي 0 في بعض العمليات.
print(True + True)
print(True + False)
print(False + False)
الناتج:
2
1
0
لكن كمبتدئ، الأفضل أن تتعامل مع Boolean على أنها قيم منطقية وليست أرقامًا، حتى لا تخلط على نفسك.
مثال عملي: برنامج بسيط لفحص نجاح الطالب
في هذا المثال سنستخدم Boolean لمعرفة هل الطالب ناجح أم لا.
grade = 75
is_passed = grade >= 50
if is_passed:
print("الطالب ناجح")
else:
print("الطالب راسب")
الناتج:
الطالب ناجح
مثال عملي: التحقق من وجود عنصر في قائمة
يمكنك استخدام in للحصول على نتيجة Boolean.
skills = ["Python", "HTML", "CSS"]
has_python = "Python" in skills
print(has_python)
الناتج:
True
ويمكن استخدامها داخل شرط:
skills = ["Python", "HTML", "CSS"]
if "Python" in skills:
print("أنت تتعلم بايثون")
أخطاء شائعة عند استخدام Boolean
1. كتابة true بدل True
خطأ:
is_active = true
الصحيح:
is_active = True
2. الخلط بين = و ==
خطأ:
if x = 10:
print("x تساوي 10")
الصحيح:
if x == 10:
print("x تساوي 10")
3. عدم فهم القيم الفارغة
بعض المبتدئين يتوقعون أن القائمة الفارغة أو النص الفارغ لا يمكن استخدامهما داخل if، لكن في بايثون هذا طبيعي.
name = ""
if name:
print("يوجد اسم")
else:
print("لا يوجد اسم")
الناتج:
لا يوجد اسم
تدريب بسيط على Boolean
اكتب برنامجًا يتحقق هل الرقم زوجي أم فردي.
الحل:
number = 8
is_even = number % 2 == 0
if is_even:
print("الرقم زوجي")
else:
print("الرقم فردي")
الناتج:
الرقم زوجي
أسئلة شائعة
ما معنى Boolean في Python؟
Boolean هو نوع بيانات يعبر عن قيمة منطقية تكون إما True أو False.
ما الفرق بين True و False؟
True تعني أن الشرط صحيح، و False تعني أن الشرط غير صحيح.
هل المقارنات في بايثون ترجع Boolean؟
نعم، مثل 5 > 3 ترجع True، و 10 == 7 ترجع False.
ما فائدة bool() في بايثون؟
الدالة bool() تحول أي قيمة إلى Boolean، وتوضح هل تعتبر هذه القيمة صحيحة أم خاطئة داخل الشروط.
هل 0 يعتبر False في Python؟
نعم، الرقم 0 يعتبر False، بينما معظم الأرقام الأخرى تعتبر True.
روابط مهمة من بايثون العرب
- أساسيات بايثون 11: شرح if و else في Python
- أساسيات بايثون 16: شرح القوائم Lists في Python
- أساسيات بايثون 18: شرح القواميس Dictionaries في Python
- أساسيات بايثون 19: شرح Set في Python
- مشكلة وحل 10: حل خطأ SyntaxError invalid syntax في بايثون
مصدر خارجي مفيد
الخلاصة
تعلمنا في هذا الدرس أن Boolean في Python هو نوع بيانات بسيط ومهم جدًا، ويعبر عن قيمتين فقط: True و False.
تعلمنا أيضًا أن المقارنات ترجع Boolean، وأن جملة if تعتمد على هذه القيم لاتخاذ القرار، وتعرفنا على الدالة bool() والقيم التي تعتبر False في بايثون.
{alertSuccess} القاعدة الذهبية: أي شرط في Python يحتاج نتيجة منطقية، وهذه النتيجة غالبًا تكون True أو False.
المقال المقترح التالي
بعد شرح Boolean، المقال التالي الأنسب هو:
أساسيات بايثون 21: شرح Operators في Python للمبتدئين
لأنك بعد فهم القيم المنطقية تحتاج أن تتعلم معاملات المقارنة والمنطق مثل == و != و > و and و or و not.