الشروط المتعددة: elif و and و or
نتعامل مع أكثر من حالتين، ونجمع الشروط بـ and و or. ⏱ نحو 15 دقيقة.
- تكتب أكثر من حالتين بـ
ifوelifوelse. - تجمع شرطين بـ
and. - تكتفي بأحد شرطين بـ
or. - ترتّب الشروط ترتيبًا صحيحًا.
١أكثر من حالتين: elif
التقدير له أكثر من حالتين: ممتاز، أو جيد جدًّا، أو ناجح، أو راسب. نستخدم elif ومعناها «وإلا إذا»:
mark = int(input("الدرجة: "))if mark >= 90: print("ممتاز")elif mark >= 75: print("جيد جدًّا")elif mark >= 60: print("ناجح")else: print("راسب")
يفحص بايثون الشروط من الأعلى، ويتوقف عند أول شرط صحيح وينفّذه فقط. الدرجة 82 ليست 90 فأكثر، لكنها 75 فأكثر، فطُبع «جيد جدًّا» وتوقف الفحص.
٢الشرطان معًا: and
«الجو معتدل إذا كانت الحرارة 20 أو أكثر و 30 أو أقل». مع and يجب أن يتحقق الشرطان كلاهما:
temp = 25if temp >= 20 and temp <= 30: print("جو معتدل")else: print("ليس معتدلًا")
٣أحد الشرطين: or
«اليوم عطلة إذا كان الجمعة أو السبت». مع or يكفي أن يتحقق شرط واحد:
day = "السبت"if day == "الجمعة" or day == "السبت": print("عطلة")else: print("يوم دراسي")
| الأداة | متى تعطي True؟ |
|---|---|
and | إذا تحقق الشرطان كلاهما |
or | إذا تحقق شرط واحد على الأقل |
٤ترتيب الشروط مهم
لأن بايثون يتوقف عند أول شرط صحيح، نبدأ بالشرط الأضيق. انظر ماذا يحدث لو بدأنا بـ 60:
mark = 95if mark >= 60: print("ناجح")elif mark >= 90: print("ممتاز")
95 أكبر من 60، فطُبع «ناجح» ولم يصل البرنامج إلى شرط «ممتاز» أبدًا. الحل: ابدأ بـ 90، ثم 75، ثم 60.
📎 للاستزادة (اختياري): عكس الشرط بـ not
not تعكس النتيجة: الصح يصبح خطأ، والخطأ يصبح صحًّا.
raining = Falseif not raining: print("اخرج بلا مظلة")
توقّع وتحقّق
ماذا تعني elif؟
x = 15. متى تكون x > 10 and x < 20 صحيحة؟
متى يعطي or النتيجة True؟
الدرجة 70 في برنامج التقديرات (90، 75، 60). ماذا يُطبع؟
الخلاصة
elifتعني «وإلا إذا»، ونضيف منها ما نحتاج.- بايثون يتوقف عند أول شرط صحيح.
and: الشرطان معًا.or: شرط واحد على الأقل.- نبدأ بالشرط الأضيق، ثم الأوسع.
تحدٍّ برمجي: تصنيف العمر
متوسطاكتب برنامجًا يقرأ العمر، ويطبع: طفل (أقل من 13)، أو مراهق (أقل من 18)، أو بالغ.
- اقرأ العمر عددًا صحيحًا.
- استخدم if و elif و else.
- انتبه لترتيب الشروط.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
age = int(input("العمر: "))💡 تلميح 1
age < 13.💡 تلميح 2
elif age < 18، ثم else.حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
age = int(input("العمر: "))if age < 13: print("طفل")elif age < 18: print("مراهق")else: print("بالغ")