الدرس 16 من دورة Python للمبتدئين

استخدام and و or في Python: دمج أكثر من شرط

في الدروس السابقة تعلمنا if و else و elif. الآن سنتعلم كيف نكتب شرطًا يعتمد على أكثر من معلومة، مثل: العمر مناسب ومع المستخدم تذكرة.

المستوى: مبتدئ جدًا النتيجة: دمج شرطين مدة التطبيق: 25 - 30 دقيقة
طريقة CIT للتعلم الهادئ: لا تحفظ and و or ككلمتين فقط. تخيلهما بوابتين منطقيتين: and تحتاج تحقق كل الشروط، و or يكفيها تحقق شرط واحد.
مهم قبل البداية: في هذا الدرس سنقارن نصًا مثل "yes". لذلك يجب أن تكتب yes كما هي بالحروف الصغيرة. لاحقًا سنتعلم كيف نتعامل مع اختلاف كتابة المستخدم.

ما النتيجة التي يجب أن تخرج بها؟

في نهاية الدرس ستفهم وتكتب برنامجًا مثل هذا:

age = int(input("اكتب عمرك: "))
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")

if age >= 18 and has_ticket == "yes":
    print("مسموح بالدخول")
else:
    print("غير مسموح بالدخول")

هنا لا يكفي أن يكون العمر مناسبًا فقط. يجب أيضًا أن تكون لدى المستخدم تذكرة.

and كل الشروط يجب أن تكون صحيحة.
or يكفي أن يكون شرط واحد صحيحًا.
== للمقارنة بين القيم.
خريطة درس and و or في Python
معنى and و or في Python
1

لماذا نحتاج دمج الشروط؟

أحيانًا لا يكفي شرط واحد لاتخاذ القرار. مثال:

هل عمر المستخدم 18 أو أكثر؟
هل معه تذكرة؟

في هذا المثال، نريد السماح بالدخول فقط إذا تحقق الشرطان معًا.

الفكرة ببساطة: بدل أن نسأل سؤالًا واحدًا، نجعل البرنامج يفحص أكثر من سؤال قبل اتخاذ القرار.
تحقق قبل الانتقال ✅ هل فهمت أننا نستخدم and و or عندما يكون القرار مرتبطًا بأكثر من شرط؟
2

أنشئ ملف الدرس السادس عشر

افتح مجلد الدورة داخل VS Code:

python_course

ثم أنشئ ملفًا جديدًا باسم:

lesson_16.py

افتح الملف داخل Editor.

توقف لحظة ✅ هل ظهر ملف lesson_16.py داخل Explorer؟ إذا نعم، انتقل للخطوة التالية.
3

استقبل العمر وحالة التذكرة

اكتب:

age = int(input("اكتب عمرك: "))
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")

السطر الأول يأخذ العمر ويحوّله إلى رقم. السطر الثاني يأخذ إجابة نصية من المستخدم.

لماذا لم نستخدم int مع has_ticket؟ لأن has_ticket ليست رقمًا. هي إجابة نصية مثل yes أو no.
سؤال سريع 🧠 هل has_ticket رقم أم نص؟ الإجابة: نص، لذلك لا نستخدم int معها.
4

استخدم and عندما يجب تحقق الشرطين

الآن نكتب الشرط:

if age >= 18 and has_ticket == "yes":
    print("مسموح بالدخول")
else:
    print("غير مسموح بالدخول")
تدفق شرط and في Python

معنى الشرط:

إذا كان العمر 18 أو أكثر
و
كانت إجابة التذكرة yes
اطبع مسموح بالدخول
قاعدة and: إذا فشل شرط واحد فقط، فالنتيجة كلها تصبح غير صحيحة.
تحقق قبل الانتقال ✅ هل فهمت أن and تحتاج تحقق الشرطين معًا؟
5

أين يقع and داخل الكود؟

and تأتي بين شرطين كاملين:

age >= 18 and has_ticket == "yes"
خريطة كود and و or في Python
انتبه: لا تكتب and وحدها. يجب أن يكون قبلها شرط وبعدها شرط.
تذكير مهم: has_ticket == "yes" تعني: هل قيمة has_ticket تساوي النص yes؟ أما = وحدها فهي للإسناد وليست للمقارنة.
سؤال سريع 🧠 هل and تربط بين متغيرين فقط أم بين شرطين؟ الإجابة: بين شرطين.
6

اكتب برنامج and كاملًا وشغله

اكتب الكود الكامل داخل ملف lesson_16.py:

age = int(input("اكتب عمرك: "))
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")

if age >= 18 and has_ticket == "yes":
    print("مسموح بالدخول")
else:
    print("غير مسموح بالدخول")

احفظ الملف:

Ctrl + S

ثم شغله:

python lesson_16.py

وإذا لم يعمل أمر python:

py lesson_16.py
تحقق قبل الانتقال ✅ هل اشتغل البرنامج وسألك عن العمر والتذكرة؟
7

اختبر and بأكثر من حالة

جرّب هذه الحالات:

العمر: 20
التذكرة: yes
النتيجة: مسموح بالدخول

العمر: 20
التذكرة: no
النتيجة: غير مسموح بالدخول

العمر: 15
التذكرة: yes
النتيجة: غير مسموح بالدخول
ماذا تعلمت؟ مع and يجب أن يتحقق الشرطان. العمر وحده لا يكفي، والتذكرة وحدها لا تكفي.
توقف لحظة ✅ هل اختبرت الحالات الثلاث؟ لا تعتمد الدرس قبل اختبارها.
8

استخدم or عندما يكفي شرط واحد

الآن نغيّر الفكرة قليلًا. لنفترض أن الدخول مسموح إذا كان لدى المستخدم تذكرة أو عضوية VIP.

has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")
is_vip = input("هل لديك عضوية VIP؟ اكتب yes أو no: ")

if has_ticket == "yes" or is_vip == "yes":
    print("مسموح بالدخول")
else:
    print("غير مسموح بالدخول")
تدفق شرط or في Python
قاعدة or: يكفي أن يتحقق شرط واحد فقط. إذا كانت لديه تذكرة أو كان VIP، فالنتيجة مسموح.
سؤال سريع 🧠 إذا لم تكن لديه تذكرة لكنه VIP، هل يسمح له بالدخول؟ نعم، لأن or يكفيها شرط واحد صحيح.
9

جدول مبسط لتثبيت الفكرة

هذا الجدول يساعدك على فهم الفرق بين and و or:

جدول نتائج and و or في Python
الخلاصة: and لا تكون صحيحة إلا إذا كان الشرطان صحيحين، أما or فتكون صحيحة إذا تحقق شرط واحد على الأقل.
تحقق قبل الانتقال ✅ هل فهمت لماذا and أشد صرامة من or؟
10

خطأ شائع: مقارنة النصوص

في هذا السطر:

has_ticket == "yes"

نحن نقارن قيمة المتغير has_ticket بالنص "yes".

انتبه: النصوص تحتاج كتابة دقيقة. إذا طلب البرنامج yes وكتبت Yes بحرف كبير، فقد لا يعتبرها Python نفس القيمة.

لذلك في هذا الدرس اكتب:

yes

وليس:

Yes
YES
نعم
لماذا لم نحل هذه المشكلة الآن؟ لأن هدف الدرس هو فهم and و or. لاحقًا سنتعلم كيف ننظف إدخال المستخدم ونجعله أكثر مرونة.
تحقق قبل الانتقال ✅ هل فهمت أن مقارنة النصوص حساسة لطريقة الكتابة؟
11

تحدي صغير: اجمع and و or

جرّب هذا التحدي:

age = int(input("اكتب عمرك: "))
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")
is_vip = input("هل لديك عضوية VIP؟ اكتب yes أو no: ")

old_enough = age >= 18
has_access = has_ticket == "yes" or is_vip == "yes"

if old_enough and has_access:
    print("مسموح بالدخول")
else:
    print("غير مسموح بالدخول")

معنى الشرط:

العمر يجب أن يكون 18 أو أكثر
ومعه إما تذكرة أو VIP
لماذا استخدمنا الأقواس؟ حتى نوضح أن has_ticket أو is_vip مجموعة واحدة داخل الشرط. الأقواس تجعل قراءة الشرط أسهل وأوضح.
تحدي التفكير 🧠 إذا كان العمر 20 وليس لديه تذكرة لكنه VIP، هل يسمح له؟ نعم. وإذا كان العمر 15 ولديه VIP، هل يسمح له؟ لا، لأن شرط العمر لم يتحقق.

اختبار نهاية الدرس

قبل الانتقال للدرس القادم، تأكد أنك فهمت هذه النقاط:

✅ فهمت أن and تستخدم عندما يجب تحقق كل الشروط.
✅ فهمت أن or تستخدم عندما يكفي شرط واحد.
✅ عرفت أن and تربط بين شرطين كاملين.
✅ عرفت أن == تستخدم للمقارنة.
✅ اختبرت and بأكثر من حالة.
✅ اختبرت or بأكثر من حالة.
✅ فهمت أن النص "yes" يجب أن يكتب بدقة.
✅ جربت التحدي الذي يجمع and و or.
إذا فهمت هذه النقاط: فأنت أصبحت قادرًا على بناء شروط أكثر واقعية، لأن البرامج الحقيقية غالبًا تعتمد على أكثر من شرط.

خلاصة الدرس

and و or تساعدانك على دمج الشروط. استخدم and عندما تريد أن تتحقق كل الشروط، واستخدم or عندما يكفي تحقق شرط واحد.

تذكر القاعدة:

condition_1 and condition_2
كل الشروط يجب أن تكون صحيحة

condition_1 or condition_2
يكفي أن يكون شرط واحد صحيحًا

في الدرس القادم سنبدأ تحسين إدخال المستخدم، ونتعلم كيف نتعامل مع اختلاف كتابة yes و Yes و YES بطريقة أذكى.