طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 111 · أساسيات برمجة الحاسب
الدرس 11 · الوحدة 3: القرار والتكرار

حلقة for و range

نكرّر عددًا معروفًا من المرات بسطر واحد. ⏱ نحو 15 دقيقة.

01234for i in range(5)
بعد هذا الدرس ستستطيع أن:
  • تكتب حلقة for مع range.
  • تحدد البداية والنهاية والخطوة في range.
  • تجمع الأعداد بحلقة for.
  • تختار بين for و while.

١حلقة for

إذا عرفنا عدد مرات التكرار مسبقًا فالأسهل for. مثل المعلم الذي ينادي الطلاب واحدًا بعد الآخر حتى ينتهي الكشف:

main.py
for i in range(5):    print("مرحبًا", i)
Shell×
>>> %Run main.py
مرحبًا 0
مرحبًا 1
مرحبًا 2
مرحبًا 3
مرحبًا 4
>>>

range(5) تعطي الأعداد 0، 1، 2، 3، 4: تبدأ من صفر، وتتوقف قبل 5. فتتكرر الحلقة 5 مرات، ويأخذ i في كل مرة العدد التالي.

٢البداية والنهاية والخطوة

الكتابةالأعدادالمعنى
range(5)0 1 2 3 4من 0 حتى ما قبل 5
range(1, 6)1 2 3 4 5من 1 حتى ما قبل 6
range(2, 11, 2)2 4 6 8 10من 2، بخطوة 2
main.py
for n in range(1, 6):    print(n)
Shell×
>>> %Run main.py
1
2
3
4
5
>>>

٣المجموع بحلقة for

نجمع الأعداد من 1 إلى 10 بسطرين فقط، ولا نحتاج أن نزيد العدّاد بأنفسنا كما في while:

main.py
total = 0for n in range(1, 11):    total += nprint("المجموع:", total)
Shell×
>>> %Run main.py
المجموع: 55
>>>

٤for على حروف النص

تمرّ for أيضًا على حروف النص حرفًا حرفًا:

main.py
for letter in "سارة":    print(letter)
Shell×
>>> %Run main.py
س
ا
ر
ة
>>>

وفي درس القوائم ستمرّ بها على قائمة أسماء أو درجات بالطريقة نفسها.

٥for أم while؟

استخدمعندمامثال
forتعرف عدد مرات التكراراطبع الأعداد من 1 إلى 10
whileلا تعرف متى يتوقف التكراراطلب كلمة المرور حتى تكون صحيحة
📎 للاستزادة (اختياري): العدّ التنازلي بـ range

الخطوة السالبة تعدّ إلى الخلف:

main.py
for n in range(5, 0, -1):    print(n)
Shell×
>>> %Run main.py
5
4
3
2
1
>>>

توقّع وتحقّق

ما الأعداد التي تعطيها range(3)؟

من 0 حتى ما قبل 3.

أي range تعطي 1 إلى 5؟

تتوقف قبل 6.

ما الأعداد التي تعطيها range(0, 10, 3)؟

من 0 بخطوة 3 قبل 10.

متى نفضّل for على while؟

for للعدد المعروف.

الخلاصة

تحدٍّ برمجي: مجموع الزوجيات

سهل

اكتب برنامجًا يجمع الأعداد الزوجية من 2 إلى 20 باستخدام for، ويطبع المجموع.

المطلوب:
  • استخدم range بخطوة 2.
  • ابدأ total من 0.
  • اطبع: المجموع: ثم الناتج.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

main.py
total = 0
المطلوب×
المجموع: 110
💡 تلميح 1
range(2, 21, 2) تعطي 2، 4، ...، 20.

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

main.py
total = 0for n in range(2, 21, 2):    total += nprint("المجموع:", total)
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←