بينما تصلح while للتكرار المبني على شرط، فإن حلقة for هي الأنسب والأكثر استخداماً عندما نعرف مسبقاً عدد المرات التي نريد التكرار فيها.
صديقة حلقة for المقربة هي range(). هذه الأداة المدمجة تولّد لنا سلسلة من الأرقام يمكننا التكرار عليها.
كيف تعمل range()؟
يمكن أن تأتي range() بثلاث صور مختلفة:
-
range(stop): تأخذ معاملًا واحدًا فقط هو نقطة التوقف (غير شاملة). وتبدأ العد دائماً من الصفر.
-
range(6) تولّد السلسلة: 0, 1, 2, 3, 4, 5. (6 أرقام).
-
range(start, stop): تأخذ معاملين، نقطة البداية (شاملة) ونقطة التوقف (غير شاملة).
-
range(1, 6) تولّد السلسلة: 1, 2, 3, 4, 5. (5 أرقام). هنا أنت تجبرها على البدء من 1.
-
range(start, stop, step): تضيف معاملاً ثالثاً وهو حجم الخطوة.
-
range(0, 10, 2) تولّد الأعداد الزوجية: 0, 2, 4, 6, 8.
-
range(10, 0, -1) تولّد السلسلة بشكل عكسي: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
بنية حلقة for:
for variable in sequence:
# الكود الذي سيتم تكراره
دعنا نعيد كتابة مثال طباعة الأعداد من 1 إلى 5 باستخدام for:
# range(1, 6) ستعطينا الأرقام 1, 2, 3, 4, 5
for i in range(1, 6):
print(i)
print("انتهت الحلقة!")
شرح الكود:
-
for i in range(1, 6):: هذا السطر يعني "لكل رقم i في السلسلة من 1 إلى 5، قم بتنفيذ الكود التالي".
-
في الدورة الأولى، تكون قيمة i هي 1.
-
في الدورة الثانية، تكون قيمة i هي 2.
-
...وهكذا حتى يصل إلى الرقم 5، ثم تنتهي الحلقة تلقائياً.
لاحظ كم هو أبسط وأكثر أماناً! لا حاجة لإنشاء عداد يدوياً أو القلق بشأن تحديثه.
