الحلقات
Loops
تكرار العمليات باستخدام for وwhile، والتحكم فيها بـ break وcontinue.
الحلقة for
for epoch in range(1, 4):
print("دورة التدريب", epoch)range(start, stop, step) تولد أعداداً من start حتى ما قبل stop.
المرور على عناصر قائمة:
models = ["SVM", "Random Forest", "CNN"]
for m in models:
print(m)enumerate وzip
for i, m in enumerate(models):
print(i, m) # الفهرس والعنصر
names = ["أ", "ب"]
scores = [0.8, 0.9]
for n, s in zip(names, scores):
print(n, s)الحلقة while
loss = 1.0
while loss > 0.1:
loss *= 0.5
print(loss) # 0.0625تأكد من أن الشرط سيصبح خاطئاً في وقت ما، وإلا ستحصل على حلقة لانهائية.
break وcontinue
for x in [3, -1, 4, 0, 5]:
if x < 0:
continue # تخطَّ القيم السالبة
if x == 0:
break # توقف عند الصفر
print(x) # يطبع 3 ثم 4القوائم المولَّدة
صيغة مختصرة لبناء قائمة من حلقة:
squares = [x ** 2 for x in range(5)] # [0, 1, 4, 9, 16]
evens = [x for x in range(10) if x % 2 == 0]في تحليل البيانات الكبيرة نتجنب الحلقات الصريحة قدر الإمكان ونستخدم العمليات المتجهة في NumPy وpandas، كما سنرى لاحقاً.
مصطلحات الدرس
- الحلقة اللانهائية Infinite Loop
- حلقة while لا يصبح شرطها خاطئاً أبداً فتستمر دون توقف.
- الكائن القابل للتكرار Iterable
- كائن يمكن المرور على عناصره واحداً تلو الآخر مثل القوائم والنصوص والقواميس وrange.
الملخص
الحلقة for تمر على عناصر كائن قابل للتكرار مثل القائمة أو النطاق range، والحلقة while تكرر ما دام الشرط صحيحاً. تتيح break إنهاء الحلقة وcontinue تخطي التكرار الحالي، وتساعد enumerate وzip على المرور على الفهارس أو على أكثر من تسلسل معاً.
أسئلة مراجعة
-
ما القيم التي يولدها range(2, 8, 2)؟
2 و4 و6، لأن النهاية 8 غير مشمولة.
-
ما الفرق بين break وcontinue؟
break تنهي الحلقة كلها، وcontinue تتخطى بقية التكرار الحالي وتنتقل إلى التالي.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة