حلقة 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} رقم أولي")اختبر فهمك