البرمجة📅 2026-09-2210 دقائق قراءة
الحلقات في Python — كرر المهام بذكاء

الحلقات في Python — كرر المهام بذكاء

دليل شامل لتعلم الحلقات في Python — for و while و range و break و continue مع مشاريع تفاعلية خطوة بخطوة

تخيل أنك تريد طباعة الأرقام من 1 إلى 100. هل ستكتب 100 سطر print؟ بالطبع لا! هنا يأتي دور الحلقات (Loops) — التي تكرر الأوامر تلقائياً.

الحلقات هي ما يجعل البرمجة قوية حقاً. بدلاً من كتابة كود متكرر مئات المرات، تكتبه مرة واحدة وتترك Python تكرره.

بنهاية هذا المقال، ستكون قادراً على:

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

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

المشكلة: التكرار الممل

تخيل أنك تريد طباعة "مرحباً" 5 مرات:

# بدون حلقات — كود مكرر
print("مرحباً")
print("مرحباً")
print("مرحباً")
print("مرحباً")
print("مرحباً")

هذا يعمل، لكنه غير عملي. ماذا لو أردت 1000 مرة؟

الحل: استخدام الحلقات

# مع حلقات — كود أنيق
for i in range(5):
    print("مرحباً")

النتيجة: نفس النتيجة بسطرين بدلاً من 5!

2. حلقة for — التكرار على المجموعات

ما هي حلقة for؟

حلقة for تُستخدم للتكرار على مجموعة من العناصر (نص، قائمة، نطاق أرقام...).

الصيغة الأساسية

for variable in sequence:
    # الكود الذي يتكرر

⚠️ ملاحظات:

  • تنتهي بنقطتين :
  • الكود بعدها يكون مُزاحاً (Indented)
  • المتغير يتغير تلقائياً في كل تكرار

مثال 1: التكرار على نص

for letter in "Python":
    print(letter)

النتيجة:

P
y
t
h
o
n

شرح:

  • الحلقة تمر على كل حرف في "Python"
  • في كل مرة، letter يأخذ قيمة الحرف الحالي

مثال 2: التكرار على قائمة

fruits = ["تفاح", "موز", "برتقال", "عنب"]

for fruit in fruits:
    print(f"أحب {fruit}")

النتيجة:

أحب تفاح
أحب موز
أحب برتقال
أحب عنب

مثال 3: طباعة الأرقام من 1 إلى 10

for i in range(1, 11):
    print(i)

النتيجة:

1
2
3
4
5
6
7
8
9
10

3. دالة range() — مولّد الأرقام

ما هي range()؟

range() هي دالة تولّد تسلسلاً من الأرقام. هي الأكثر استخداماً مع for.

الصيغ الثلاث

الصيغةالمعنىمثالالنتيجة
range(n)من 0 إلى n-1range(5)0, 1, 2, 3, 4
range(start, stop)من start إلى stop-1range(2, 7)2, 3, 4, 5, 6
range(start, stop, step)مع خطوةrange(0, 10, 2)0, 2, 4, 6, 8

مثال 1: range(n)

for i in range(5):
    print(i)

النتيجة:

0
1
2
3
4

⚠️ مهم: range(5) يبدأ من 0 وينتهي عند 4 (وليس 5).

مثال 2: range(start, stop)

for i in range(3, 8):
    print(i)

النتيجة:

3
4
5
6
7

مثال 3: range مع خطوة

# الأرقام الزوجية من 0 إلى 10
for i in range(0, 11, 2):
    print(i)

النتيجة:

0
2
4
6
8
10

مثال 4: العد التنازلي

for i in range(10, 0, -1):
    print(i)
print("انطلق! 🚀")

النتيجة:

10
9
8
7
6
5
4
3
2
1
انطلق! 🚀

4. حلقة while — التكرار حسب شرط

ما هي حلقة while؟

حلقة while تكرر الكود طالما الشرط متحقق.

الصيغة الأساسية

while condition:
    # الكود الذي يتكرر

مثال 1: العد من 1 إلى 5

counter = 1

while counter <= 5:
    print(counter)
    counter += 1

النتيجة:

1
2
3
4
5

شرح:

  1. counter = 1
  2. هل 1 <= 5؟ نعم → اطبع 1، ثم counter = 2
  3. هل 2 <= 5؟ نعم → اطبع 2، ثم counter = 3
  4. ... وهكذا حتى counter = 6
  5. هل 6 <= 5؟ لا → توقف

⚠️ تحذير: الحلقة اللانهائية

خطأ شائع:

# خطأ — حلقة لا نهائية!
counter = 1
while counter <= 5:
    print(counter)
    # نسيت counter += 1

النتيجة: البرنامج يطبع "1" للأبد! لإيقافه، اضغط Ctrl + C.

القاعدة الذهبية: تأكد دائماً أن هناك شيء يتغير داخل while ليوقف الحلقة.

مثال 2: التحقق من كلمة المرور

password = ""

while password != "python2026":
    password = input("أدخل كلمة المرور: ")
    if password != "python2026":
        print("❌ خاطئة، حاول مرة أخرى")

print("✅ تم تسجيل الدخول!")

مثال 3: لعبة تخمين الرقم (نسخة كاملة)

import random

secret = random.randint(1, 20)
guess = 0
attempts = 0

print("🎮 خمن الرقم بين 1 و 20!")

while guess != secret:
    guess = int(input("تخمينك: "))
    attempts += 1
    
    if guess < secret:
        print("⬆️ أكبر")
    elif guess > secret:
        print("⬇️ أصغر")
    else:
        print(f"🎉 مبروك! خمنت الرقم في {attempts} محاولات")

5. مقارنة بين for و while

المعيارforwhile
الاستخدامعندما تعرف عدد التكراراتعندما لا تعرف (حسب شرط)
مثالطباعة 10 أرقامانتظار إدخال صحيح
الخطرلا يوجدحلقة لا نهائية
الاستخدام الشائعالقوائم، النصوص، rangeالتفاعل مع المستخدم

6. جملة break — إيقاف الحلقة

ما هي break؟

break تُوقف الحلقة فوراً وتخرج منها، حتى لو لم ينتهِ الشرط.

مثال 1: إيقاف عند رقم معين

for i in range(1, 11):
    if i == 5:
        print("وصلنا إلى 5! توقف")
        break
    print(i)

النتيجة:

1
2
3
4
وصلنا إلى 5! توقف

مثال 2: البحث عن عنصر

numbers = [3, 7, 12, 5, 18, 2, 9]
target = 18

for num in numbers:
    if num == target:
        print(f"وجدنا {target}!")
        break
else:
    print(f"{target} غير موجود")

النتيجة:

وجدنا 18!

7. جملة continue — تخطي التكرار

ما هي continue؟

continue تتخطى بقية الكود في التكرار الحالي وتنتقل للتكرار التالي.

مثال 1: تخطي الأرقام الزوجية

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)

النتيجة:

1
3
5
7
9

شرح: عندما i يكون زوجياً (i % 2 == 0)، يتم تخطي print والانتقال للتكرار التالي.

مثال 2: تجاوز القيم السالبة

numbers = [5, -3, 8, -1, 10, -7, 4]
total = 0

for num in numbers:
    if num < 0:
        continue
    total += num

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

النتيجة:

مجموع الأرقام الموجبة: 27

8. مقارنة: break مقابل continue

الجملةالوظيفةالتأثير
breakإيقاف الحلقة كاملةيخرج من الحلقة
continueتخطي التكرار الحاليينتقل للتكرار التالي
passلا يفعل شيئاًللتخطيط المستقبلي

9. جملة else مع الحلقات

ميزة فريدة في Python

في Python، يمكنك إضافة else بعد الحلقة. ينفذ الكود في else إذا انتهت الحلقة بشكل طبيعي (بدون break).

مثال

numbers = [3, 7, 12, 5, 18, 2, 9]
target = 100

for num in numbers:
    if num == target:
        print(f"وجدنا {target}!")
        break
else:
    print(f"{target} غير موجود في القائمة")

النتيجة:

100 غير موجود في القائمة

لماذا؟ لأن الحلقة انتهت بدون تنفيذ break.

10. الحلقات المتداخلة

ما هي الحلقات المتداخلة؟

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

مثال: جدول الضرب

# جدول ضرب من 1 إلى 5
for i in range(1, 6):
    for j in range(1, 6):
        print(f"{i} × {j} = {i * j}")
    print("-" * 20)

النتيجة:

1 × 1 = 1
1 × 2 = 2
1 × 3 = 3
1 × 4 = 4
1 × 5 = 5
--------------------
2 × 1 = 2
2 × 2 = 4
...

مثال: طباعة نجمة

# مثلث من النجوم
for i in range(1, 6):
    print("⭐" * i)

النتيجة:

⭐
⭐⭐
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐⭐

11. مشاريع عملية

المشروع 1: جدول الضرب التفاعلي

# جدول ضرب تفاعلي
num = int(input("أدخل رقماً لعرض جدول ضربه: "))

print(f"\n📊 جدول ضرب {num}:")
print("=" * 20)

for i in range(1, 11):
    print(f"{num} × {i} = {num * i}")

print("=" * 20)

المشروع 2: جمع الأرقام حتى الصفر

# يجمع الأرقام حتى يدخل المستخدم 0
total = 0
count = 0

print("أدخل أرقاماً (اكتب 0 للتوقف):")

while True:
    num = float(input("الرقم: "))
    
    if num == 0:
        break
    
    total += num
    count += 1
    print(f"المجموع الحالي: {total}")

if count > 0:
    print(f"\n📊 ملخص:")
    print(f"عدد الأرقام: {count}")
    print(f"المجموع: {total}")
    print(f"المتوسط: {total / count:.2f}")
else:
    print("لم تدخل أي رقم")

المشروع 3: طباعة الأعداد الأولية

# طباعة الأعداد الأولية من 2 إلى 50
print("الأعداد الأولية من 2 إلى 50:")

for num in range(2, 51):
    is_prime = True
    
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    
    if is_prime:
        print(num, end=" ")

print()

النتيجة:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

المشروع 4: عداد تنازلي مع رسم

import time

print("🚀 استعد للإطلاق...")
print()

for i in range(5, 0, -1):
    print(f"⏱ {i}...")
    time.sleep(1)

print("🚀 انطلق!")

12. أخطاء شائعة

الخطأ 1: نسيان الزيادة في while

# خطأ — حلقة لا نهائية
i = 0
while i < 5:
    print(i)
    # نسيت i += 1

الحل:

i = 0
while i < 5:
    print(i)
    i += 1

الخطأ 2: تعديل القائمة أثناء التكرار

# خطأ
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        numbers.remove(num)   # خطر!

الحل:

# صحيح
numbers = [1, 2, 3, 4, 5]
numbers = [num for num in numbers if num % 2 != 0]

الخطأ 3: استخدام break خارج الحلقة

# خطأ
if x == 5:
    break   # SyntaxError

الخطأ 4: نسيان النقطتين

# خطأ
for i in range(5)
    print(i)

# صحيح
for i in range(5):
    print(i)

الخطأ 5: إزاحة غير صحيحة

# خطأ
for i in range(5):
print(i)

# صحيح
for i in range(5):
    print(i)

13. تمارين عملية

التمرين 1: مجموع الأرقام

اكتب برنامجاً يحسب مجموع الأرقام من 1 إلى 100.

النتيجة المتوقعة: 5050

التمرين 2: طباعة الأرقام الزوجية

اكتب برنامجاً يطبع الأرقام الزوجية من 1 إلى 20.

النتيجة المتوقعة: 2 4 6 8 10 12 14 16 18 20

التمرين 3: عدّ حروف الكلمة

اكتب برنامجاً يطلب كلمة ويطبع عدد حروفها.

# مثال
word = input("أدخل كلمة: ")
# اطبع عدد الحروف

التمرين 4: جدول ضرب

اكتب برنامجاً يطبع جدول ضرب كامل من 1 إلى 10.

التمرين 5: حساب المضروب

اكتب برنامجاً يحسب مضروب رقم (Factorial).

مثال: مضروب 5 = 5×4×3×2×1 = 120

قائمة تحقق — هل تعلمت؟

المهارةالحالة
استخدام حلقة for
استخدام حلقة while
استخدام range() بجميع صيغها
استخدام break لإيقاف الحلقة
استخدام continue لتخطي تكرار
الحلقات المتداخلة
بناء مشاريع باستخدام الحلقات

الخلاصة

في هذا المقال، تعلمت:

  1. حلقة for — التكرار على المجموعات
  2. حلقة while — التكرار حسب شرط
  3. دالة range() — لتوليد تسلسل الأرقام
  4. break — إيقاف الحلقة
  5. continue — تخطي تكرار
  6. else مع الحلقات — ميزة Python الفريدة
  7. الحلقات المتداخلة — حلقة داخل حلقة

الحلقات هي ما يجعل البرمجة قوية — بدونها، ستكتب نفس الكود مئات المرات.

في المقال القادم: سنتعلم الدوال (Functions) — كيف تنظم كودك وتعيد استخدامه!

جرب التمارين الخمسة قبل الانتقال للمقال التالي. الممارسة هي المفتاح!

ما نوع الحلقة التي وجدتها الأسهل؟ شاركنا في التعليقات!

فريق نهضة

فريق نهضة

فريق عربي متخصص في التقنية والذكاء الاصطناعي وتطوير الذات

📚 مقالات ذات صلة

الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟
البرمجة

الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟

دليل شامل لتعلم الشروط في Python — if, else, elif والعوامل المنطقية مع أمثلة عملية ومشاريع تفاعلية خطوة بخطوة

أول برنامج لك بلغة Python — Hello World وأكثر
البرمجة

أول برنامج لك بلغة Python — Hello World وأكثر

دليل عملي لكتابة أول برنامج Python — تعلم print و input والمتغيرات والتعليقات مع أمثلة تفاعلية خطوة بخطوة

كيف تثبت Python على ويندوز وماك — دليل خطوة بخطوة 2026
البرمجة

كيف تثبت Python على ويندوز وماك — دليل خطوة بخطوة 2026

دليل عملي مفصل لتثبيت Python على ويندوز وماك خطوة بخطوة — مع حل المشاكل الشائعة وإعداد بيئة العمل الاحترافية