بعد أن تعلمنا في الدروس السابقة أنواع بيانات مهمة مثل Lists و Tuples و Dictionaries و Sets، نصل الآن إلى نوع بسيط في شكله، لكنه أساسي في كل برنامج تقريبًا: Boolean.
القيم المنطقية أو Boolean في Python هي القيم التي تكون إما True أو False. بمعنى أبسط: صحيح أو خطأ، نعم أو لا، الشرط تحقق أو لم يتحقق.
قد يبدو الدرس قصيرًا من النظرة الأولى، لكن فهم Boolean مهم جدًا؛ لأنه يدخل في الشروط if، والمقارنات، والتحقق من البيانات، وتحديد ما الذي يجب أن ينفذه البرنامج.
في هذا الدرس من سلسلة أساسيات بايثون على بايثون العرب ستتعلم معنى Boolean في Python، وكيف تعمل قيم True و False، وكيف تستخدمها مع المقارنات وجملة if والدالة bool().
{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 في Python تُكتبان بحرف كبير في البداية. لا تكتب true أو false بحروف صغيرة، لأن ذلك سيجعل بايثون تتعامل معها كأسماء متغيرات غير معرفة.
{alertWarning} في Python يجب كتابة True و False بحرف كبير في البداية، لأن true و false بحروف صغيرة قد تسبب خطأ NameError.
لماذا نحتاج Boolean في البرمجة؟
نحتاج Boolean عندما نريد من البرنامج أن يتخذ قرارًا بناءً على نتيجة معينة. مثلًا:
- هل عمر المستخدم أكبر من 18؟
- هل كلمة المرور صحيحة؟
- هل القائمة فارغة؟
- هل الرقم زوجي؟
- هل المستخدم مسجل الدخول؟
كل هذه الأسئلة نتيجتها غالبًا تكون إما True أو False. ومن هنا تأتي أهمية Boolean في بناء البرامج العملية.
المقارنات في بايثون ترجع 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
من أكثر الأخطاء التي يقع فيها المبتدئون الخلط بين = و ==.
=تستخدم لإسناد قيمة إلى متغير.==تستخدم للمقارنة بين قيمتين، وترجعTrueأوFalse.
مثال:
x = 10 # إسناد قيمة
print(x == 10) # مقارنة
الناتج:
True
{alertWarning} استخدم = لتخزين قيمة داخل متغير، واستخدم == للمقارنة والحصول على True أو False.
استخدام Boolean داخل if
أكثر مكان ستستخدم فيه Boolean هو جملة الشرط if. جملة if تفحص الشرط: إذا كانت النتيجة True تنفذ الكود، وإذا كانت False تنتقل إلى else أو تتجاهل الكتلة.
مثال:
age = 20
if age >= 18:
print("مسموح بالدخول")
else:
print("غير مسموح بالدخول")
هنا الشرط age >= 18 يرجع True، لذلك سيتم تنفيذ السطر الموجود داخل if.
الناتج:
مسموح بالدخول
{alertSuccess} جملة if تعتمد على نتيجة منطقية: إذا كانت True تنفذ الكود، وإذا كانت False تنتقل إلى else أو تتجاهل الكتلة.
مثال عملي: التحقق من كلمة المرور
لنفترض أنك تريد التحقق هل كلمة المرور التي كتبها المستخدم صحيحة أم لا. نتيجة المقارنة هنا ستكون Boolean.
password = "python123"
is_correct = password == "python123"
print(is_correct)
الناتج:
True
ويمكن استخدام المتغير is_correct مباشرة داخل 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: كل الشروط يجب أن تكون صحيحة.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، لذلك تم تنفيذ الكود.
هل 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
| الفكرة | المعنى | مثال |
|---|---|---|
True |
قيمة صحيحة | 5 > 3 |
False |
قيمة غير صحيحة | 5 < 3 |
bool() |
تحويل قيمة إلى Boolean | bool("") |
and |
كل الشروط يجب أن تكون صحيحة | age > 18 and has_card |
or |
يكفي شرط واحد صحيح | is_admin or is_owner |
not |
عكس النتيجة | not is_logged_in |
أسئلة شائعة
ما معنى 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.
هل النص الفارغ يعتبر False؟
نعم، النص الفارغ "" يعتبر 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 في بايثون.
إذا فهمت Boolean جيدًا، ستصبح الشروط والمقارنات أوضح بكثير، وستعرف لماذا ينفذ البرنامج جزءًا معينًا من الكود ويتجاهل جزءًا آخر.
{alertSuccess} القاعدة الذهبية: أي شرط في Python يحتاج نتيجة منطقية، وهذه النتيجة غالبًا تكون True أو False.