Kodax

حلقة for — أساسيات Python

حلقة for

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

for fruit in ["تفاح", "موز", "عنب"]:
    print("أحب", fruit)

في كل دورة يأخذ المتغير fruit قيمة العنصر التالي، وتُنفَّذ الأوامر المُزاحة.

range() لتوليد الأرقام

| الصيغة | الأرقام المولّدة |

|---|---|

| range(5) | 0, 1, 2, 3, 4 |

| range(1, 6) | 1, 2, 3, 4, 5 |

| range(0, 10, 2) | 0, 2, 4, 6, 8 |

| range(5, 0, -1) | 5, 4, 3, 2, 1 |

النهاية لا تُحتسب أبداً: range(1, 6) تتوقف عند 5.

المرور على نص

for ch in "Python":
    print(ch)

الفهرس والقيمة معاً: enumerate

students = ["أحمد", "منى", "علي"]
for i, name in enumerate(students, start=1):
    print(i, name)

نمط التجميع (accumulator)

من أهم أنماط البرمجة: متغير يبدأ بقيمة ابتدائية ويتحدث داخل الحلقة.

total = 0
for n in range(1, 101):
    total += n
print(total)   # 5050

خطأ شائع

تعديل القائمة أثناء المرور عليها (حذف عناصر منها داخل الحلقة) يعطي نتائج غير متوقعة. أنشئ قائمة جديدة بدلاً من ذلك.

تمرين

اطبع جدول الضرب للرقم 7 (من 1 إلى 10)، ثم احسب مجموع الأعداد الزوجية من 1 إلى 50.

# تكرار بسيط
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

# تكرار من رقم لرقم
for i in range(1, 6):
    print(i)  # 1, 2, 3, 4, 5

# تكرار بخطوة
for i in range(0, 10, 2):
    print(i)  # 0, 2, 4, 6, 8

# المرور على قائمة
fruits = ["تفاح", "موز", "برتقال"]
for fruit in fruits:
    print(f"أحب {fruit}")

# المرور على نص
word = "Python"
for letter in word:
    print(letter)

# enumerate للحصول على الفهرس
students = ["أحمد", "محمد", "علي"]
for index, name in enumerate(students):
    print(f"{index + 1}. {name}")

# جدول الضرب
num = 5
for i in range(1, 11):
    print(f"{num} × {i} = {num * i}")

# break للخروج
for i in range(10):
    if i == 5:
        break
    print(i)  # 0, 1, 2, 3, 4

# continue للتخطي
for i in range(10):
    if i % 2 == 0:  # تخطي الأرقام الزوجية
        continue
    print(i)  # 1, 3, 5, 7, 9

# for-else
for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            break
    else:
        print(f"{n} رقم أولي")
اختبر فهمك