المدونةالفصل الثانيثاني متوسطالحلقات (Loops) – الوحدة الثالثة – الدرس الأول

الحلقات (Loops) – الوحدة الثالثة – الدرس الأول

الحلقات (Loops)

الحلقات (Loops) هو عنوان الدرس الأول من الوحدة الثانية التي تحمل اسم “البرمجة مع بايثون” في الفصل الدراسي الثاني من مقرر “المهارات الرقمية – ثاني متوسط”.

سنتعرف في هذا الموضوع على حلقة for، واستخدامها في بايثون، والتعرُّف على كتابة المسافة البادئة في الحلقات، ودالة النطاق (range)، بالإضافة للتعرُّف على حلقة while الشرطية، والحلقة اللانهائية (Infinite Loop)، وعبارة الإيقاف.

الحلقات (Loops)

الحلقات (Loops)

قم بقراءة نواتج التعلُّم بعناية، ثم أعد قراءتها بعد انتهائك من دراسة الموضوع، وتأكَّد من تحصيل محتواها.

نواتج التعلُّم

  • استخدام حلقة for للتكرار.
  • كتابة المسافة البادئة في الحلقات.
  • كتابة دالة النطاق في الحلقات.
  • استخدام حلقة while الشرطية.
  • استخدام الحلقة اللانهائية.
  • استخدام عبارة الإيقاف.

هيا لنبدأ!

مقدمة – الحلقات (Loops)

ستحتاج في بعض الأحيان إلى تكرار مجموعة من الأوامر عدة مرات في النص البرمجي، وسيتطلَّب هذا التكرار الكثير من الوقت والجهد.

لذلك، توفِّر جميع لغات البرمجة تقريبًا بنية تحكُّم تسمى حلقة (loop). ستسمح لك هذه الدالة بتنفيذ صف واحد أو مجموعة من المقاطع البرمجية عدة مرات. وبإمكانك تحديد عدد التكرارات برقم معيَّن، أو أن تعتمد على شرط معيَّن.

يدعم بايثون نوعين من الحلقات:

  • حلقة for.
  • حلقة while.

لمعرفة المزيد من المعلومات عن الحلقات في بايثون، قم بالاطّلاع على الرابط التالي:

استخدام التكرار الحلقي “while” و”for” في بايثون – Microsoft

حلقة for

يتم استخدام حلقة for لتكرار مجموعة من الأوامر لعددٍ محدَّدٍ من المرات، ويكون عدد التكرارات محدَّدًا في قيم دالة النطاق (range()).

المسافة البادئة في الحلقات

كما تعلَّمت سابقًا، فإن استخدام المسافة البادئة (Indentation) لعبارات IF الشرطية، هو أمر مهم جدًا في بايثون.

يتعرَّف المقطع البرمجي على العبارات المضمنة في الحلقة، والتي يتم تنفيذها في كل تكرار لها، من خلال المسافة البادئة؛ لذلك إذا لم تترك مسافة بادئة في مقطعك البرمجي، فستتلقى رسالة خطأ.

بإمكانك مراجعة محتوى موضوع “الحلقات (Loops)” حتى نهاية هذا القسم، من خلال الرابط التالي:

دالة النطاق

يتم استخدام دالة النطاق (range()) مع الحلقة لتحديد عدد التكرارات، ويسمى المُتغيِّر الذي يحسب التكرار العدّاد (counter).

في دالة النطاق يبدأ العدّاد بالعد من 0، يزيد بمقدار 1 وينتهي العد قبل الوصول إلى الرقم المُحدَّد.

مثال على ذلك:

الحلقات (Loops)

الحلقات (Loops)

يمكِن تحديد مقدار البداية بإضافة قيمة. على سبيل المثال، النطاق (2,5)، يعني أن العدّاد يبدأ من 2 وينتهي عند 4 (القيمة 5 غير مدرجة).

القيمة التلقائية للزيادة في دالة النطاق هي 1، ولكن يمكِن تحديد مقدار الزيادة بإضافة قيمة ثالثة. على سبيل المثال، النطاق (1,5,2)، يعني أن العدّاد يبدأ في العد من 1، وينتهي عند 4 ويزداد بمقدار 2.

يمكِن أن تكون الخطوة عددًا سالبًا، ويصبح العدّ بشكلٍ عكسي.

الحلقات (Loops)

الحلقات (Loops)

مثال: درجات تقييم الطلبة

لقد علمت سابقًا على مثال لحساب درجات تقييم الطلبة، حيث يتحقَّق المقطع البرمجي من اجتياز الطالب للامتحانات. ستتعلَّم كيف يمكِنك تطبيق حلقة for.

لقد تحقَّقت في المثال السابق من درجات طالب واحد فقط، لتفترض أن عليك التحقُّق من درجات صف كامل مكوَّن من 15 طالبًا.

يتم استخدام حلقة for عند معرفة عدد التكرارات المراد قبل بداية تكرار. ماذا يحدث عندما يكون الرقم غير معروف والتكرار يعتمد على شرط معيَّن؟ في مثل هذه الحالات، تقدم بايثون حلقة while الشرطية.

حلقة while الشرطية

يتم استخدام حلقة while عندما لا يكون عدد التكرارات معروفًا سابقًا. طالما أن الحالة صحيحة، فإن الحلقة تتكرَّر ويتم فحصها بعد كل تكرار للتأكُّد من صحتها.

عندما تصبح الحالة خطأ، يتوقف التكرار وينتقل المقطع البرمجي إلى الصف التالي بعد الحلقة. أما إذا كانت حالة الشرط خطأ في البداية، فلن يتم تنفيذ الحلقة على الإطلاق.

الحلقات (Loops)

الحلقات (Loops)

انظر إلى مثال حلقة while الشرطية، يقوم المستخدِم بإدخال قيمة للمُتغيِّر x، وتنتهي الحلقة عندما يقوم المستخدِم بإدخال 0 كقيمة للمتغيِّر x.

بإمكانك استخدام حلقة while الشرطية للتحقُّق من مدخلات المُستخدِم في متغيِّر معيَّن.

مثال: درجات تقييم الطلبة

في هذا المثال، سيطلب المقطع البرمجي من المُستخدِم إدخال درجة الطالب، ويجب أن تكون هذه الدرجة أكبر من أو تسوي 0، وأقل من أو تساوي 20.

في حال قام المُستخدِم بإدخال قيمة خارج هذا النطاق، فسيعرض المقطع البرمجي رسالة خطأ ويطلب من المُستخدِم إدخال درجة صالحة.

الحلقات (Loops)

الحلقات (Loops)

بإمكانك مراجعة محتوى موضوع “الحلقات (Loops)” بدايةً من عنوان “دالة النطاق” حتى نهاية هذا القسم، من خلال الرابط التالي:

حلقة لا نهائية

إذا لم يصبح شرط حلقة while خطأ، فسينتهي بك الأمر بحلقة لا نهائية (Infinite loop)، وهي حلقة لا تنتهي أبدًا.

عندما تَستخدِم حلقة while الشرطية، يجب أن تتضمن أمرًا، أو مجموعة من الأوامر التي ستغيِّر الحالة من صواب (True) إلى خطأ (False).

في المثال السابق، قيمة المتغيِّر i لا تتغيَّر، لذلك سيتم تكرار المقطع البرمجي إلى الأبد.

لاحظ أن

لإيقاف تكرار الحلقة، اضغط على ctrl + c في نافذة Python shell.

عبارة الإيقاف

في بعض الأحيان تريد إنهاء حلقة قبل أن تصبح حالتها خطأ. في مثل هذه الحالات، ستستخدِم عبارة الإيقاف (Break statement).

تُنهي عبارة الإيقاف الحلقة التي تحتوي عليها، وينتقل المقطع البرمجي إلى الصف المتواجد بعد الحلقة. يمكِن استخدام عبارة الإيقاف في حلقة for أيضًا.

لاحظ أن

عادةً ما يكون هناك العديد من الطرق المختلفة لأداء نفس المهِمَّة.

تفضل إحدى الطرق على الأخرى بناءً على عدة عوامل، أهمها سرعة تشغيل المقطع البرمجي ومساحة التخزين المطلوبة. المبرمج يحدِّد أفضل طريقة.

بإمكانك مراجعة محتوي موضوع “الحلقات (Loops)” بدايةً من عنوان “حلقة لا نهائية” وحتى نهاية الموضوع، من خلال الرابط التالي:

إلى هنا يكون قد انتهى موضوع “الحلقات (Loops)”، لا تنسوا مراجعة نواتج التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!

روابط هامة

مقررات الفصل الدراسي الثاني

مشاركة المقال عبر:

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *