استخدام and و or في Python: دمج أكثر من شرط
في الدروس السابقة تعلمنا if و else و elif. الآن سنتعلم كيف نكتب شرطًا يعتمد على أكثر من معلومة، مثل: العمر مناسب ومع المستخدم تذكرة.
ما النتيجة التي يجب أن تخرج بها؟
في نهاية الدرس ستفهم وتكتب برنامجًا مثل هذا:
age = int(input("اكتب عمرك: "))
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")
if age >= 18 and has_ticket == "yes":
print("مسموح بالدخول")
else:
print("غير مسموح بالدخول")
هنا لا يكفي أن يكون العمر مناسبًا فقط. يجب أيضًا أن تكون لدى المستخدم تذكرة.
لماذا نحتاج دمج الشروط؟
أحيانًا لا يكفي شرط واحد لاتخاذ القرار. مثال:
هل عمر المستخدم 18 أو أكثر؟ هل معه تذكرة؟
في هذا المثال، نريد السماح بالدخول فقط إذا تحقق الشرطان معًا.
أنشئ ملف الدرس السادس عشر
افتح مجلد الدورة داخل VS Code:
python_course
ثم أنشئ ملفًا جديدًا باسم:
lesson_16.py
افتح الملف داخل Editor.
استقبل العمر وحالة التذكرة
اكتب:
age = int(input("اكتب عمرك: "))
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")
السطر الأول يأخذ العمر ويحوّله إلى رقم. السطر الثاني يأخذ إجابة نصية من المستخدم.
استخدم and عندما يجب تحقق الشرطين
الآن نكتب الشرط:
if age >= 18 and has_ticket == "yes":
print("مسموح بالدخول")
else:
print("غير مسموح بالدخول")
معنى الشرط:
إذا كان العمر 18 أو أكثر و كانت إجابة التذكرة yes اطبع مسموح بالدخول
أين يقع and داخل الكود؟
and تأتي بين شرطين كاملين:
age >= 18 and has_ticket == "yes"
اكتب برنامج 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
اختبر and بأكثر من حالة
جرّب هذه الحالات:
العمر: 20 التذكرة: yes النتيجة: مسموح بالدخول العمر: 20 التذكرة: no النتيجة: غير مسموح بالدخول العمر: 15 التذكرة: yes النتيجة: غير مسموح بالدخول
استخدم or عندما يكفي شرط واحد
الآن نغيّر الفكرة قليلًا. لنفترض أن الدخول مسموح إذا كان لدى المستخدم تذكرة أو عضوية VIP.
has_ticket = input("هل لديك تذكرة؟ اكتب yes أو no: ")
is_vip = input("هل لديك عضوية VIP؟ اكتب yes أو no: ")
if has_ticket == "yes" or is_vip == "yes":
print("مسموح بالدخول")
else:
print("غير مسموح بالدخول")
جدول مبسط لتثبيت الفكرة
هذا الجدول يساعدك على فهم الفرق بين and و or:
خطأ شائع: مقارنة النصوص
في هذا السطر:
has_ticket == "yes"
نحن نقارن قيمة المتغير has_ticket بالنص "yes".
لذلك في هذا الدرس اكتب:
yes
وليس:
Yes YES نعم
تحدي صغير: اجمع 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
اختبار نهاية الدرس
قبل الانتقال للدرس القادم، تأكد أنك فهمت هذه النقاط:
خلاصة الدرس
and و or تساعدانك على دمج الشروط. استخدم and عندما تريد أن تتحقق كل الشروط، واستخدم or عندما يكفي تحقق شرط واحد.
تذكر القاعدة:
condition_1 and condition_2 كل الشروط يجب أن تكون صحيحة condition_1 or condition_2 يكفي أن يكون شرط واحد صحيحًا
في الدرس القادم سنبدأ تحسين إدخال المستخدم، ونتعلم كيف نتعامل مع اختلاف كتابة yes و Yes و YES بطريقة أذكى.
💬 التعليقات
لا توجد تعليقات بعد.
🚫 يجب تسجيل الدخول لإضافة تعليق. دخول / تسجيل