جمل التكرار (Loops)

في بايثون، هناك نوعان رئيسيان من جمل التكرار: for و while. تستخدم هذه الجمل لتكرار تنفيذ كتلة من التعليمات البرمجية عدة مرات حتى يتحقق شرط معين أو حتى يتم الوصول إلى نهاية مجموعة من العناصر.

مجموعة من التعليمات البرمجية السابقة لجملة التكرار 

...

while الشرط :

    كتلة التعليمات البرمجية التي يجب تنفيذها

    ...

...

مجموعة من التعليمات البرمجية اللاحقة لجملة التكرار 

مثال على برنامج يطبع الأرقام من 1 إلى 5: 

i = 1

while i <= 5 :

   print(i)

   i += 1

يبدأ النص البرمجي بتعريف متغير i ويعطيه القيمة 1. ثم يدخل البرنامج في حلقة تكرار while تستمر طالما أن قيمة i أقل من أو تساوي 5. داخل هذه الحلقة، يتم طباعة قيمة i على الشاشة، ثم يتم زيادة قيمة i بمقدار 1 في كل تكرار. نتيجة لذلك، ستتم طباعة الأرقام من 1 إلى 5 بشكل متتابع.

⚠️  يرجى ملاحظة أنه يجب زيادة قيمة i في كل تكرار، وإلا فإن الحلقة ستستمر إلى الأبد.

تستخدم عبارة else في نهاية حلقة التكرار عند الحاجة لتنفيذ مجموعة من التعليمات البرمجية مرة واحدة فقط عندما لا يكون الشرط صحيحًا.

مثال: 

i = 1

while i <= 5 :

   print(i)

   i += 1

else :

   print("انتهت جملة التكرار")

المخرجات:

1

2

3

4

5

انتهت جملة التكرار

مجموعة من التعليمات البرمجية السابقة لجملة التكرار 

...

for عنصر in تسلسل :

    كتلة التعليمات البرمجية التي يجب تنفيذها

    ...

...

مجموعة من التعليمات البرمجية اللاحقة لجملة التكرار 

مثال على برنامج يطبع الأرقام من 1 إلى 5: 

for i in range(1,6):

    print (i)

يدخل البرنامج السابق في حلقة تكرار (for) التي تقوم بتكرار التعليمات البرمجية الموجودة داخل كتلة التكرار عبر مجموعة من الأعداد، حيث تقوم دالة range(1, 6) بإنتاج تسلسل من الأعداد يبدأ من 1 وينتهي عند 5 (الرقم 6 غير مشمول). خلال كل دورة من دورات التكرار، يُعين المتغير i إلى القيمة الحالية في التسلسل ويقوم بتنفيذ جملة print(i) لطباعة هذه القيمة. وبالتالي، ستتم طباعة الأعداد من 1 إلى 5 تباعًا.

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

مثال:

for i in range(4):

   print (i)

المخرجات:

   0

   1

   2

   3

مثال: 

for i in range(1,4):

   print (i)

المخرجات:

   1

   2

   3

مثال: 

for i in range(1,4,2):

   print (i)

المخرجات:

   1

   3

يمكن استخدام عبارة else مع جملة التكرار for بنفس الطريقة المستخدمة مع جملة التكرار while في النهاية لتحديد مجموعة من التعليمات البرمجية التي ستُنفذ عند انتهاء الحلقة.

مثال: 

for i in range(3):

  print (i)

else :

(3 ,"النهاية = ")print   

المخرجات: 

0

1

2

النهاية =  3

في بايثون، تستخدم الكلمات continue و break للتحكم في تنفيذ الحلقات في التكرارات for و while. فيما يلي شرح موجز لكل منهما:

مثال: 

for i in range(5):

  if ( i%2 == 0 ):

     continue

  print (i)

يقوم هذا البرنامج بتكرار حلقة for خمس مرات من 0 إلى 4. في كل تكرار، يتم التحقق مما إذا كان الرقم الحالي i زوجياً باستخدام عامل باقي القسمة (راجع خطوة 8) i % 2 == 0. إذا كان الرقم زوجياً، يتم استخدام الكلمة continue لتخطي باقي التعليمات البرمجية في الدورة الحالية والانتقال مباشرة إلى الدورة التالية. وبالتالي، يتم فقط طباعة الأرقام الفردية (1، 3) حيث لا يتم طباعة الأرقام الزوجية (0، 2، 4).

مثال:

for i in range(5):

  if not ( i%2 == 0 ):

     break

  print (i)

يقوم هذا البرنامج بتكرار حلقة for خمس مرات من 0 إلى 4. في كل تكرار، يتم التحقق مما إذا كان الرقم الحالي i ليس زوجياً باستخدام التعبير not (i % 2 == 0). إذا كان الرقم غير زوجي، يتم استخدام الكلمة break لإنهاء الحلقة. وبالتالي، ستطبع الحلقة الأرقام الزوجية فقط حتى تجد أول رقم غير زوجي (الذي هو 1 في هذه الحالة). لذا، يتم طباعة الرقم 0 فقط، ثم تنتهي الحلقة عند الوصول إلى أول رقم غير زوجي، وهو 1.

فكر! 

ماذا لو أردنا طباعة المصفوفة 3x4 باستخدام جمل التكرار؟

1 2 3 4

5 6 7 8

9 10 11 12


🤔