الحلقات والتكرار في بايثون

الحلقات والتكرار في بايثون

45 دقيقة
٧ يونيو ٢٠٢٦
المرحلة 1 من 6

مقدمة عن الحلقات والتكرار

الدرس الرابع: الحلقات والتكرار في بايثون (Loops and Iteration)

ما هي الحلقات التكرارية؟

الحلقات (Loops) هي إحدى أقوى الأدوات في البرمجة. تتيح لك تنفيذ كتلة من الأوامر بشكل متكرر دون الحاجة لكتابتها يدوياً. تخيل أنك تريد طباعة الأرقام من 1 إلى 100. بدون الحلقات، ستضطر لكتابة 100 أمر طباعة. مع الحلقات، تكتب 3 أسطر فقط!

لماذا نحتاج الحلقات؟

في عالم البرمجة، نواجه دائماً مهام متكررة: معالجة قوائم بيانات، قراءة ملفات سطراً سطراً، أو تكرار عملية حتى تتحقق حالة معينة. الحلقات تجعل الكود أقصر، أسهل للقراءة، وأقل عرضة للأخطاء. في مشروعنا المستقبلي (API المهام)، سنستخدم الحلقات لمعالجة قوائم المهام والبحث فيها.

أنواع الحلقات في بايثون

بايثون توفر نوعين رئيسيين من الحلقات:

  • حلقة for: تستخدم للتكرار على مجموعة محددة من العناصر (قائمة، نص، نطاق أرقام).
  • حلقة while: تستمر في التكرار طالما شرط معين صحيح (True).

1. حلقة for: التكرار على المجموعات

هذه الحلقة هي الأكثر استخداماً في بايثون. تعمل على تمرير كل عنصر من عناصر مجموعة محددة.

مثال عملي 1: طباعة عناصر قائمة
# قائمة بأسماء طلاب
students = ["أحمد", "سارة", "خالد", "نورة"]

# حلقة for تطبع كل اسم
for student in students:
    print(f"مرحباً {student}!")

# الناتج:
# مرحباً أحمد!
# مرحباً سارة!
# مرحباً خالد!
# مرحباً نورة!

شرح الكود خطوة بخطوة:

  • أنشأنا قائمة students تحتوي على 4 أسماء.
  • كلمة for تبدأ الحلقة.
  • student هو متغير مؤقت يأخذ قيمة كل عنصر في القائمة بالتتابع.
  • in students تحدد المجموعة التي نريد التكرار عليها.
  • الأمر print ينفذ لكل اسم في القائمة.

استخدام range() مع حلقة for

دالة range() تولد سلسلة من الأرقام. مفيدة جداً عندما نريد تكرار عدد محدد من المرات.

مثال عملي 2: طباعة الأرقام من 1 إلى 5
# range(5) يولد الأرقام 0,1,2,3,4
for i in range(5):
    print(f"الرقم: {i}")

# الناتج:
# الرقم: 0
# الرقم: 1
# الرقم: 2
# الرقم: 3
# الرقم: 4

# للبدء من 1 بدلاً من 0:
for i in range(1, 6):
    print(f"الرقم: {i}")

# الناتج:
# الرقم: 1
# الرقم: 2
# الرقم: 3
# الرقم: 4
# الرقم: 5

2. حلقة while: التكرار بشرط

تستمر حلقة while في التنفيذ طالما الشرط المحدد صحيح. يجب توخي الحذر لتجنب الحلقات اللانهائية!

مثال عملي 3: عد تنازلي بسيط
count = 5

while count > 0:
    print(f"العد التنازلي: {count}")
    count -= 1  # ننقص 1 من count في كل مرة

print("انتهى العد!")

# الناتج:
# العد التنازلي: 5
# العد التنازلي: 4
# العد التنازلي: 3
# العد التنازلي: 2
# العد التنازلي: 1
# انتهى العد!

شرح الكود:

  • بدأنا بمتغير count = 5.
  • الشرط count > 0 يتحقق قبل كل تكرار.
  • داخل الحلقة، نطبع القيمة ثم ننقصها بواحد (count -= 1).
  • عندما يصبح count = 0، الشرط يصبح False وتتوقف الحلقة.

أخطاء شائعة وكيفية تجنبها

  • الحلقة اللانهائية: نسيان تحديث المتغير في حلقة while يؤدي إلى تكرار لا نهائي. تأكد دائماً من أن الشرط سيصبح False في النهاية.
  • نسيان النقطتين (:) بعد for أو while: هذا خطأ نحوي شائع. تذكر دائماً وضع النقطتين.
  • المسافات البادئة (Indentation): كل الأوامر داخل الحلقة يجب أن تكون ذات مسافة بادئة واحدة (4 مسافات أو tab). أي أمر بدون مسافة يعتبر خارج الحلقة.
نصيحة مهمة: استخدم break للخروج من الحلقة مبكراً، و continue لتخطي التكرار الحالي والانتقال للتالي. مثال:
for i in range(10):
    if i == 3:
        continue  # يتخطى الرقم 3
    if i == 7:
        break     # يتوقف عند الرقم 7
    print(i)
# الناتج: 0,1,2,4,5,6

مثال تطبيقي: حساب مجموع الأرقام

لنطبق ما تعلمناه في مثال عملي لحساب مجموع الأرقام من 1 إلى 10.

مثال عملي 4: حساب المجموع
# حساب مجموع الأرقام من 1 إلى 10
total = 0

for number in range(1, 11):
    total += number  # نفس total = total + number

print(f"مجموع الأرقام من 1 إلى 10 هو: {total}")

# الناتج: مجموع الأرقام من 1 إلى 10 هو: 55

تمرين صغير (تطبيق عملي)

التحدي: اكتب برنامجاً يقوم بالآتي:
  1. أنشئ قائمة تحتوي على 5 أرقام من اختيارك.
  2. استخدم حلقة for لطباعة كل رقم مضروباً في 2.
  3. استخدم حلقة while لحساب مجموع الأرقام في القائمة.

الحل المتوقع:

# القائمة
numbers = [3, 7, 12, 5, 9]

# طباعة كل رقم مضروب في 2
print("الأرقام مضروبة في 2:")
for num in numbers:
    print(num * 2)

# حساب المجموع باستخدام while
total = 0
index = 0
while index < len(numbers):
    total += numbers[index]
    index += 1

print(f"مجموع الأرقام هو: {total}")

خلاصة الدرس

في هذا الدرس تعلمنا:

  • ما هي الحلقات التكرارية ولماذا نحتاجها.
  • حلقة for للتكرار على المجموعات واستخدام range().
  • حلقة while للتكرار بشرط.
  • الأخطاء الشائعة وكيفية تجنبها.
  • كيفية استخدام break و continue للتحكم في الحلقات.

في الدرس القادم، سننتقل إلى الدوال (Functions) وكيفية تنظيم الكود لجعله أكثر قابلية لإعادة الاستخدام. الحلقات التي تعلمتها اليوم ستكون أساسية في بناء دوال فعالة.

جاري تحميل التقييمات...