التكرار: كرّر بذكاء
while • for • break • continue • range() • ⏱ نحو 45 دقيقة
ما هو التكرار Loops؟
عملية تُستخدم لـتكرار تنفيذ مجموعة من التعليمات البرمجية وفق عدد محدد من المرات، أو عند تحقق شرط معيّن. وهناك نوعان رئيسيان: الحلقة while والحلقة for. فائدته: تقليل التكرار اليدوي للأوامر داخل البرنامج، فنكتب الأمر مرة واحدة ويُنفَّذ مرات كثيرة.
🧪 حلقة تطبع الأعداد من 1 إلى 5
بدل خمسة أوامر print(1) … print(5) نكتب الأمر مرة واحدة ويُنفَّذ مرات كثيرة. غيّر 5 إلى 100 وانظر كم هو سهل!
اضغط «شغّل» لترى الناتج هنا.
الحلقة while
تُستخدم لتكرار تنفيذ كتلة برمجية طالما تحقق شرط معيّن. تستمر الحلقة طالما الشرط True، وتنتهي عندما يصبح False.
صيغة الكتابة
while condition:
code block to be executed
until the condition becomes False.كيف تُنفَّذ الحلقة؟ (أربع خطوات)
- 1نحدّد قيمة ابتدائيةx = 1
- 2نفحص شرط الحلقةx <= 5
- 3إذا كان الشرط True نطبعprint(x)
- 4نزيد قيمة المتغيرx = x + 1
تتبّع الحلقة خطوة بخطوة
اضغط «التالي» لترى كيف تتغير قيمة x ومتى تتوقف الحلقة.
القيمة الابتدائية Initial Value.
نستخدم x = x + 1 أو x += 1 لزيادة قيمة المتغير بمقدار واحد، ونعطي المتغير قيمة ابتدائية Initial Value. وإذا نسينا زيادته فالحلقة لا تنتهي أبدًا!
تكرارات while المتداخلة Nested
حلقة تكرارية تُكتب داخل حلقة أخرى، بحيث تُنفَّذ الحلقة الداخلية بالكامل في كل مرة تُنفَّذ فيها الحلقة الخارجية. (الخارجية: الفصول، والداخلية: الطلاب).
🧪 مثال 2: عدد الفصول وعدد الطلاب في كل فصل
أدخل 2 ثم 3 ثم 2. كل مستوى تداخل جديد يحتاج مسافة بادئة إضافية، و\n تنقلنا إلى سطر جديد.
اضغط «شغّل» لترى الناتج هنا.
التعليمة break
تُستخدم لـإيقاف الحلقة التكرارية والخروج منها مباشرة عند تحقق شرط معين. والكتلة else المرتبطة بالحلقة تُنفَّذ بعد انتهاء الحلقة إذا لم تنتهِ بـ break. أما exit() فتُستخدم لإنهاء البرنامج.
🧪 مثال 3: التحقق من كلمة المرور (3 محاولات)
كلمة المرور الصحيحة a1234. جرّب ثلاث محاولات خاطئة، ثم جرّب أن تدخلها صحيحة في المحاولة الثانية.
اضغط «شغّل» لترى الناتج هنا.
الحلقة اللانهائية while True
تُستخدم while True لتكرار تنفيذ التعليمات إلى ما لا نهاية، لأن الشرط (True) صحيح دائمًا، إلى أن نخرج منها بـ break.
🧪 مثال 4: إدخال كلمة المرور حتى تصحّ
جرّب 321 ثم b123 ثم a1234.
اضغط «شغّل» لترى الناتج هنا.
التعليمة continue
تُستخدم لـتجاوز التكرار الحالي والانتقال مباشرة إلى التكرار التالي، حيث يتم تجاهل الأوامر المتبقية في الدورة الحالية وتبدأ دورة تكرارية جديدة.
🧪 مثال 5: طباعة الأعداد الزوجية
الأعداد الفردية تُتخطى بـ continue فلا تُطبع.
اضغط «شغّل» لترى الناتج هنا.
الحلقة for
تُستخدم لتكرار تنفيذ كتلة من التعليمات البرمجية لعدد محدد من المرات. الصيغة: for variable in iterable: حيث variable متغير يأخذ عنصرًا واحدًا في كل لفّة، وiterable ما نمرّ على عناصره واحدًا تلو الآخر، مثل السلاسل النصية Strings.
صيغة الكتابة
for variable in iterable:
code block to be executed
for each element.🧪 مثال 6: طباعة حروف اسم الدولة
أدخل Kuwait. المتغير ch يأخذ حرفًا في كل لفّة: K ثم u ثم w ثم a ثم i ثم t.
اضغط «شغّل» لترى الناتج هنا.
الدالة range()
range(stop)
تبدأ من الصفر وحتى العدد السابق للعدد stop، وتزيد بمقدار واحد.
range(5)→ 0 1 2 3 4
range(start, stop)
تبدأ من start وحتى العدد السابق للعدد stop.
range(3, 7)
range(-4, -1)→ 3 4 5 6 / -4 -3 -2
range(start, stop, step)
مع تغيّر بمقدار step في كل مرة.
range(1, 11, 2)
range(5, 1, -1)→ 1 3 5 7 9 / 5 4 3 2
تُستخدم range لتحديد عدد مرات التكرار، والعدد stop لا يدخل ضمن التسلسل.
🧪 جرّب range بنفسك
غيّر القيم داخل range وشاهد التسلسل. list() تحوّله إلى قائمة لنراه كاملًا.
اضغط «شغّل» لترى الناتج هنا.
🧪 مثال 7: مجموع أسعار ثلاثة عناصر
أدخل 5.5 ثم 3 ثم 8 (المجموع 16.5).
اضغط «شغّل» لترى الناتج هنا.
تكرارات for المتداخلة
حلقات تكرارية تُكتب داخل حلقات أخرى، بحيث تُنفَّذ الحلقة الداخلية بالكامل في كل مرة تُنفَّذ فيها الخارجية. هنا الخارجية تمثّل أرقام الصفوف والداخلية أحرف المقاعد داخل كل صف.
🧪 مثال 8: عرض مقاعد الطائرة
لاحظ أن الحلقة الداخلية تدور على الأحرف ABCD كاملة في كل صف.
اضغط «شغّل» لترى الناتج هنا.
for مع break و else و continue
برنامج كلمة المرور (مثال 3) بالحلقة for: تُنفَّذ else إذا لم تنتهِ الحلقة بـ break. وكذلك continue تعمل مع for كما تعمل مع while.
🧪 مثال 9: كلمة المرور باستخدام for
جرّب ثلاث محاولات خاطئة، ثم جرّب 123 ثم a1234.
اضغط «شغّل» لترى الناتج هنا.
🧪 مثال 10: طباعة الأعداد الزوجية بـ for
النتيجة 2 4 6 8 10.
اضغط «شغّل» لترى الناتج هنا.
ملخص: أدوات التكرار
while
تكرار كتلة طالما الشرط متحقق (True).
for
تكرار على عناصر سلسلة أو على أعداد range().
break
الخروج من الحلقة والانتقال إلى ما بعدها.
continue
تخطي الدورة الحالية إلى التكرار التالي.
ورقة العمل 13: برنامج تخمين عدد
المشكلة
إدخال أعداد صحيحة والتأكد من مدى مطابقتها للعدد المُعرَّف في البرنامج.
الخوارزمية
نعلن عن متغير يساوي العدد المطلوب تخمينه (8). نستقبل عددًا صحيحًا من المستخدم. إذا كان أكبر نطبع رسالة «أكبر» ويستمر الإدخال، وإذا كان أصغر نطبع رسالة «أصغر» ويستمر. وعند التطابق نطبع رسالة المطابقة وينتهي البرنامج.
🧪 حل ورقة العمل 13
جرّب 5 ثم 10 ثم 8. لاحظ أن النص Guess! what's... كُتب بين علامتي اقتباس مزدوجتين لأنه يحتوي على علامة (').
اضغط «شغّل» لترى الناتج هنا.
ورقة العمل 14: برنامج جدول الضرب
المشكلة
برنامج يطبع جدول الضرب لعدد محدد.
الخوارزمية
نستقبل العدد المطلوب ونطبع رسالة (Multiplication table for) ثم قيمة العدد. نُنشئ حلقة تكرارية لطباعة ضرب العدد المُدخل في الأعداد من 1 إلى 12: الناتج = العدد × قيمة متغير التكرار، ثم نطبع جدول الضرب.
🧪 حل ورقة العمل 14
أدخل 3 فيظهر جدول الضرب حتى 3 x 12 = 36.
اضغط «شغّل» لترى الناتج هنا.
أنهيت القراءة! حان وقت 🎮 اللعب