الحلقات (Loops) هي إحدى أقوى الأدوات في البرمجة. تتيح لك تنفيذ كتلة من الأوامر بشكل متكرر دون الحاجة لكتابتها يدوياً. تخيل أنك تريد طباعة الأرقام من 1 إلى 100. بدون الحلقات، ستضطر لكتابة 100 أمر طباعة. مع الحلقات، تكتب 3 أسطر فقط!
في عالم البرمجة، نواجه دائماً مهام متكررة: معالجة قوائم بيانات، قراءة ملفات سطراً سطراً، أو تكرار عملية حتى تتحقق حالة معينة. الحلقات تجعل الكود أقصر، أسهل للقراءة، وأقل عرضة للأخطاء. في مشروعنا المستقبلي (API المهام)، سنستخدم الحلقات لمعالجة قوائم المهام والبحث فيها.
بايثون توفر نوعين رئيسيين من الحلقات:
هذه الحلقة هي الأكثر استخداماً في بايثون. تعمل على تمرير كل عنصر من عناصر مجموعة محددة.
# قائمة بأسماء طلاب
students = ["أحمد", "سارة", "خالد", "نورة"]
# حلقة for تطبع كل اسم
for student in students:
print(f"مرحباً {student}!")
# الناتج:
# مرحباً أحمد!
# مرحباً سارة!
# مرحباً خالد!
# مرحباً نورة!
for تبدأ الحلقة.student هو متغير مؤقت يأخذ قيمة كل عنصر في القائمة بالتتابع.in students تحدد المجموعة التي نريد التكرار عليها.print ينفذ لكل اسم في القائمة.دالة range() تولد سلسلة من الأرقام. مفيدة جداً عندما نريد تكرار عدد محدد من المرات.
# 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
تستمر حلقة while في التنفيذ طالما الشرط المحدد صحيح. يجب توخي الحذر لتجنب الحلقات اللانهائية!
count = 5
while count > 0:
print(f"العد التنازلي: {count}")
count -= 1 # ننقص 1 من count في كل مرة
print("انتهى العد!")
# الناتج:
# العد التنازلي: 5
# العد التنازلي: 4
# العد التنازلي: 3
# العد التنازلي: 2
# العد التنازلي: 1
# انتهى العد!
count = 5.count > 0 يتحقق قبل كل تكرار.count -= 1).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.
# حساب مجموع الأرقام من 1 إلى 10
total = 0
for number in range(1, 11):
total += number # نفس total = total + number
print(f"مجموع الأرقام من 1 إلى 10 هو: {total}")
# الناتج: مجموع الأرقام من 1 إلى 10 هو: 55
الحل المتوقع:
# القائمة
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}")
في هذا الدرس تعلمنا:
في الدرس القادم، سننتقل إلى الدوال (Functions) وكيفية تنظيم الكود لجعله أكثر قابلية لإعادة الاستخدام. الحلقات التي تعلمتها اليوم ستكون أساسية في بناء دوال فعالة.
جاري تحميل التقييمات...