Boolean في بايثون هو نوع بيانات منطقي اسمه bool وله قيمتان فقط: True وFalse. تستخدم هذه القيم لتمثيل نتيجة منطقية، مثل نتيجة مقارنة بين رقمين أو حالة يتحقق منها البرنامج.
أبسط مثال:
print(5 > 3)
print(5 < 3)
الناتج:
True
False
في هذا الدرس ستفهم معنى True وFalse، وكيف تنتج القيم المنطقية من المقارنات، وكيف تستخدم bool() وBoolean داخل شرط بسيط دون تحويل المقال إلى شرح كامل للشروط.
{getToc} $title={محتوى المقال}
ما هو Boolean في بايثون؟
النوع bool مخصص للقيم المنطقية. القيمتان الوحيدتان من هذا النوع هما True وFalse.
is_active = True
is_finished = False
print(type(is_active))
الناتج:
<class 'bool'>
يجب كتابة True وFalse بحرف كبير في البداية. كتابة true أو false بحروف صغيرة لا تنشئ قيمة Boolean؛ وإذا لم تكن هذه الأسماء معرفة فستحصل عادةً على NameError.
كيف نحصل على قيمة Boolean؟
تظهر قيم Boolean كثيرًا كنتيجة للمقارنات. فالمقارنة تكون صحيحة أو غير صحيحة، ولهذا تعيد عادةً True أو False.
print(10 == 10)
print(7 != 7)
print(8 >= 5)
الناتج:
True
False
True
| التعبير | النتيجة |
|---|---|
5 > 3 | True |
5 == 3 | False |
bool(1) | True |
bool(0) | False |
bool("") | False |
bool("Python") | True |
إذا أردت التوسع في معاملات المقارنة والشروط، يكفي هنا أن تعرف أن == للمقارنة، بينما = لإسناد قيمة إلى متغير.
استخدام Boolean مع if
تستفيد جملة if من النتيجة المنطقية لتحديد هل تنفذ الكود أم لا. لا نحتاج هنا إلى شرح الشروط من الصفر؛ يكفي هذا المثال:
is_logged_in = True
if is_logged_in:
print("مرحبًا بك")
بما أن is_logged_in تساوي True، ينفذ السطر داخل if. ولشرح if وelse بالتفصيل، راجع درس الشروط في بايثون.
كيف تعمل bool()؟ وما القيم Falsy؟
الدالة bool() تحول القيمة إلى True أو False بحسب ما يسمى Truth Value. من القيم الشائعة التي تعتبر Falsy في بايثون:
FalseNone- الصفر مثل
0و0.0 - النص الفارغ
"" - المجموعات الفارغة مثل
[]و{}وset()
أما معظم القيم الأخرى فتعتبر Truthy. مثال:
print(bool(0))
print(bool(25))
print(bool(""))
print(bool("False"))
الناتج:
False
True
False
True
السطر الأخير مهم: "False" نص غير فارغ، لذلك bool("False") تساوي True. محتوى النص نفسه لا يحوله إلى القيمة المنطقية False.
الفرق بين False و "False"
القيمة False من نوع Boolean، أما "False" فهي String لأن علامات الاقتباس تجعلها نصًا.
print(type(False))
print(type("False"))
print(bool("False"))
الناتج:
<class 'bool'>
<class 'str'>
True
هذا الفرق من أكثر النقاط التي تربك المبتدئ: وجود كلمة False داخل نص لا يجعل النص قيمة منطقية.
أخطاء شائعة عند استخدام Boolean
- كتابة
trueبدلTrue: القيم المنطقية في بايثون حساسة لحالة الأحرف. - الخلط بين
Falseو"False": الأولى Boolean والثانية String غير فارغة. - توقع أن
bool("False")تعيد False: النتيجة هيTrueلأن النص غير فارغ. - الخلط بين
=و==: الأولى للإسناد والثانية للمقارنة.
هل True وFalse مرتبطتان بالأرقام؟
تقنيًا، النوع bool هو فرع من int في بايثون؛ لذلك يمكن أن تتصرف True مثل 1 وFalse مثل 0 في بعض السياقات العددية.
print(True + True)
print(True + False)
الناتج:
2
1
لكن كمبتدئ، تعامل معها أولًا كقيم منطقية؛ هذه العلاقة العددية معلومة جانبية وليست الطريقة الأساسية لاستخدام Boolean.
تمرين بسيط على Boolean
حاول توقع النتائج قبل تشغيل الكود:
print(8 > 10)
print(bool([]))
print(bool([1]))
print(bool("False"))
الإجابة:
False
False
True
True
روابط تساعدك على الخطوة التالية
- أساسيات بايثون 7: أنواع البيانات Data Types — للمرجع العام للأنواع.
- أساسيات بايثون 11: شرح if وelse — للتوسع في استخدام النتائج المنطقية داخل الشروط.
- الدرس السابق: Sets في بايثون.
- الدرس التالي: شرح None والفرق بينها وبين False و0.
- صفحة كورس أساسيات بايثون.
أسئلة شائعة
ما هو Boolean في بايثون؟
هو نوع البيانات bool، وله قيمتان فقط: True وFalse.
لماذا True وFalse تبدأ بحرف كبير؟
لأن هذا هو الشكل الصحيح للثابتين في بايثون. كتابة true أو false لا تعني القيمتين المنطقيتين.
ما الفرق بين False و"False"؟
False قيمة Boolean، بينما "False" نص من نوع str.
ماذا ترجع bool("False")؟
ترجع True لأن "False" نص غير فارغ.
الخلاصة
Boolean في بايثون يعني نتيجة منطقية من نوع bool: إما True أو False. تظهر هذه القيم كثيرًا من المقارنات، ويمكن لـbool() تحويل القيم بحسب Truthiness.
تذكر أهم نقطتين: False ليست مثل "False"، والقيم الفارغة أو الصفر تكون Falsy غالبًا. بعد فهم هذه الفكرة، انتقل إلى درس None في بايثون لفهم الفرق بين عدم وجود قيمة والقيمة المنطقية False.
{alertSuccess} Boolean = True أو False. افهم كيف تنتج هذه القيم أولًا، ثم استخدمها داخل الشروط دون الحاجة إلى تحويل هذا الدرس إلى شرح كامل لـ if.