الدرس 6 من 10

حلقة for

هدف الدرس

مرّ على كل عنصر

01

الشرح

for تمرّ على عناصر القائمة واحدًا واحدًا: for s in scores: — بلا عدّاد ولا فهارس. وحين تحتاج أعدادًا متتالية فـ range(1, 11) تعطيك من 1 إلى 10: البداية تدخل والنهاية لا تدخل، ومنها يأتي أكثر أخطاء «ناقص واحد».

وإن احتجت الموضع مع القيمة فلا تكتب range(len(scores))؛ enumerate(scores, start=1) تعطيك الاثنين معًا: for pos, s in enumerate(scores, start=1):.

وcontinue تتخطّى بقية الدورة إلى العنصر التالي، وbreak تُنهي الحلقة كلها. والحاجة إليهما هنا حقيقية: None علامة غياب، ومقارنته برقم كـ None >= 50 ترمي TypeError وتوقف البرنامج. تخطَّه قبل أي مقارنة.

02

المطلوب

اصنع multiples: مضاعفات 7 من 7 إلى 70، بـ range. واحسب passed: عدد الدرجات 50 فأكثر، متخطّيًا الغياب. ثم first_fail: ترتيب أول درجة دون 50 والعدّ من 1، وأوقف الحلقة عندها.

معايير التصحيح

4 معايير
  1. multiples فيها عشرة أعداد
  2. multiples من 7 إلى 70
  3. passed يعدّ الناجحين ويتخطّى الغياب
  4. first_fail موضع أول راسب والعدّ من 1
main.py
المخرجاتPython · Pyodide

جارٍ تحميل بيئة بايثون… تُحمَّل مرّة واحدة ثم يحفظها المتصفح.

–/4

يبدأ الفحص حين تجهز البيئة.

4 معايير في بطاقة «المطلوب».