بايثون هو واحد من أكثر اللغات استخدامًا اليوم. مثل معظم لغات البرمجة الأخرى تقريبًا، لديها بايثون بنية الحلقة. حلقات بايثون مثل حلقة for وحلقة while تسمح للمطورين بتكرار مجموعات أو بناءً على شروط مختلفة.
في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء واستخدام كل نوع من حلقات بايثون وأيضًا كيفية التحكم في الحلقات باستخدام تعليمات بايثون break
و pass
و continue
.
لنبدأ!
متطلبات مسبقة
سيكون هذا المنشور برنامجًا تعليميًا تدريجيًا. إذا كنت ترغب في المتابعة، تأكد من أن لديك بايثون v3.6 أو أحدث مثبتًا. سيتم استخدام بايثون v3.9.2 في هذا البرنامج التعليمي على جهاز يعمل بنظام التشغيل Windows 10.
فهم هياكل بايثون القابلة للتكرار
قبل أن تبدأ في تعلم الحلقات، يجب عليك أن تتعرف على مفهوم الكائنات القابلة للتكرار في بايثون. تعالج الحلقات مجموعات العناصر مثل القوائم، التراكيب، و القواميس. تحتوي كل هذه الهياكل على عناصر متعددة يمكنك “التكرار عليها”. وبالتالي، كل كائن هو قابل للتكرار مع عناصر يمكن لحلقة معالجتها بشكل فردي.
عندما تسمع شخصًا يتحدث عن شيء يمكن تكراره، فاعلم أن هذا عنصر يمكنك قراءته لكل كائن داخل تلك المجموعة باستخدام حلقة.
حلقات For في Python
لنبدأ هذا البرنامج التعليمي بتعلم حلقات for أولاً. تكرر حلقات for تنفيذ البيانات أو مجموعة البيانات التي تتحكم فيها تعبير يمكن تكراره. بعبارة أخرى، تقوم بتنفيذ الشيفرة لكل عنصر داخل مجموعة العناصر.
حلقات For والسلاسل
على سبيل المثال، ربما لديك عنصر يمكن تكراره مثل سلسلة. في Python، السلسلة هي سلسلة من الأحرف. تتكون كل سلسلة من مجموعة من الأحرف. ربما لديك سلسلة ADAM
. تتكون هذه السلسلة من أربعة أحرف يمكن تكرارها، A
، D
، A
، و M
.
كسلسلة واحدة، ترى Python عنصرًا واحدًا فقط؛ ADAM
، كما هو موضح أدناه.

ولكن، نظرًا لأن سلاسل Python قابلة للتكرار، يمكن لـ Python أن تقوم بـ “تفكيك” تلك السلسلة إلى مجموعة من الأحرف ومن ثم معالجة كل حرف بشكل فردي. للقيام بذلك، يمكنك إنشاء حلقة for مثلما يلي.
تحتوي حلقة الـ for على هدف أو مُكرر (letter
في هذه الحالة) لتمثيل كل تكرار. بعد ذلك، ستخبر Python بالعنصر القابل للتكرار الذي ترغب في معالجته (ATA
) باستخدام الكلمة الرئيسية in
. كل حرف في مجموعة الأحرف موجود في السلسلة.
ثم، داخل حلقة الـ for، يمكنك إنشاء أي شيفرة ترغب في تنفيذها لكل تكرار. في هذا المثال، يقوم Python ببساطة بطباعة كل حرف في مجموعة الأحرف (السلسلة).
يمكنك أن ترى أدناه أن Python يقوم بطباعة كل حرف في السلسلة تلو الآخر.

يمكن لحلقات الـ for أن تكرر أي عنصر يمكن التكرار عليه مثل القوائم والنطاقات أيضًا. استبدل
ATA
في مثال هذا القسم بـrange(5)
وسترى نفس النتيجة.
حلقات الـ while في Python
بينما تنفذ حلقات الـ for الكود لكل عنصر في مجموعة من العناصر، تنفذ حلقة الـ while الكود بناءً على شرط محدد. على وجه التحديد، يستمر Python في تنفيذ حلقة while بينما الشرط خاطئًا.
على سبيل المثال، المتطلب الشائع في Python هو إنشاء عداد وتنفيذ الكود عدد محدد من المرات. لإنشاء هذا الوضع، ستحتاج إلى تعريف شرط سيعيد القيمة True
عندما يتجاوز العدد الحالي العدد الأقصى.
لنفترض أنك تبدأ بمتغير يسمى count
يخزن القيمة الصحيحة 0. ترغب في زيادة هذا العدد بمقدار 1 ولكن لا تتجاوزه 5. يمكنك إنشاء شيء مثل هذا:
ربما يمكن أن يعمل ذلك الكود ولكنه غير كفء على الإطلاق. أنت لا تستخدم مبدأ DRY. أنت تكرر نفسك. بدلاً من ذلك، قلل طول الكود بواسطة استخدام حلقة while وإخبار Python بإضافة واحدة إلى count
بينما count
أقل من ستة.
تستخدم الأمثلة أدناه حلقة while لتعريف شرط (count < 6
) وتنفيذ تعبير (عبارة print
وزيادة count
بمقدار 1 بينما الشرط يكون True
.

تحكم التدفق في الحلقات
في المثالين السابقين، بدأت وانتهت كل من حلقات for و while في Python بمفردها. انتهت حلقة for لأنها وصلت إلى نهاية المجموعة القابلة للتكرار، وانتهت حلقة while لأن شرطها قيم إلى True
.
على الرغم من أنه من الشائع أن تنتهي حلقات Python “بشكل طبيعي”، يمكنك أيضًا تغيير سلوك الحلقة لتنتهي مبكرًا أو تتخطى واحدة أو أكثر من التكرارات.
بيان الاستراحة
عندما تحتاج إلى إنهاء حلقة مبكرًا، يمكنك القيام بذلك باستخدام بيان break
. عند تنفيذه داخل حلقة، يتوقف بيان break
عند التكرار الحالي.
عادةً ما ستستخدم بيان break
عندما يتم تحقيق شرط معين داخل حلقة. على سبيل المثال، في المثال السابق لحلقة for، تعلمت أن حلقة for ستكرر على مجموعة من الأحرف في سلسلة. ربما ترغب في معالجة جميع الأحرف حتى الحرف الأول D
.
لإيقاف حلقة for (أو حتى حلقة while)، قم بتعريف شرط معين ترغب في تحقيقه ثم قم بتضمين بيان break
، كما هو موضح أدناه.
في المثال أدناه، تنهي Python حلقة for في اللحظة التي يتساوى فيها متغير المكرر letter
مع D
.

بيان الاستمرار
ربما تحتاج إلى إنشاء حلقة استنادًا إلى شرط معين ولكنك لا ترغب بالضرورة في معالجة كل عنصر قابل للتكرار. في هذه الحالة، يمكنك تخطي التكرارات باستخدام بيان continue
.
غير كفأة وصفة break
التي تنهي الحلقة بأكملها، تقوم الصيغة continue
بتخطي التكرار الحالي. باستخدام المثال أعلاه، ربما ترغب في التكرار فوق كل حرف في السلسلة ADAM
ولكن تخطي حرف D
. يمكنك تخطي الحرف D
باستخدام شرط (if letter == "D"
) والصيغة continue
، كما هو موضح أدناه.
يمكنك أن ترى أدناه أن بايثون لم يعيد الحرف D
لأن الصيغة continue
قفزت على البيان الذي يطبع عندما واجهت حرف D
.

البيان المروري
لننهي الآن قسم التحكم في التدفق بالبيان pass
. البيان pass
فريد نوعًا ما بحيث أنه في الواقع مجرد عنصر نائب. البيان pass
هو طريقة لتحديد حلقة في سيناريو بايثون تفعل في الواقع شيئًا.
لنفترض أن لديك حلقة for تفضل تركها في سيناريو بايثون لأي سبب من الأسباب. ولكن، ليس لديك فعليًا تعبير لتنفيذه داخلها، مثل ما يلي.
عندما تقوم بتحديد حلقة for في بايثون مع تعبير داخلي، ستعيد بايثون خطأ الهامش، كما هو موضح أدناه.

لكن، قم بإضافة البيان pass
كتعبير داخل الحلقة for
وسترى أن بايثون ينفذ الحلقة for بشكل أساسي دون فعل أي شيء.

الاستنتاج
في هذا الدرس، تعلمت كيفية البدء في العمل مع حلقات البرمجة في بايثون. تعلم كيفية عمل حلقات البرمجة في بايثون وكيفية التحكم بها يمنحك مزيدًا من الفرص لإنشاء وبناء برامج بايثون قوية.
بعد اكتساب المعرفة الجديدة الخاصة بك، أين ستقوم بإدراج حلقة في كودك؟