جمل التكرار (Loops)
في بايثون، هناك نوعان رئيسيان من جمل التكرار: for و while. تستخدم هذه الجمل لتكرار تنفيذ كتلة من التعليمات البرمجية عدة مرات حتى يتحقق شرط معين أو حتى يتم الوصول إلى نهاية مجموعة من العناصر.
جملة التكرار while: تستخدم جملة التكرار while لتنفيذ كتلة من التعليمات البرمجية طالما كانت الشرط صحيحًا. في حالة عدم تحقق الشرط، يتوقف التكرار. تتضمن الصيغة الأساسية كلمة "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: تستخدم جملة التكرار for لتكرار تنفيذ كتلة من التعليمات البرمجية لعدد معين من المرات أو على تسلسل معين، سواء كان ذلك قائمة (list) أو سلسلة (Tuple) أو قاموسًا (Dictionary) أو مجموعة (set) أو سلسلة نصية (string). تتضمن الصيغة الأساسية كلمة "for" متبوعة بالاسم الذي سيتم تخزين قيمه فيه لكل عنصر في التسلسل خلال كل دورة من دورات التكرار (يمكن للمبرمج اختيار أي اسم يرغب فيه هنا). بعد ذلك، تأتي كلمة in التي تحدد العلاقة بين المتغير والعناصر في التسلسل. وأخيرًا، يأتي التسلسل الذي يحتوي على العناصر التي سيتم تنفيذ التكرار عليها.
مجموعة من التعليمات البرمجية السابقة لجملة التكرار
...
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 بعدة صيغ:
range(stop): يبدأ التسلسل من الرقم 0 ويمتد حتى القيمة stop مع استبعاد القيمة نفسها من التسلسل.
مثال:
for i in range(4):
print (i)
المخرجات:
0
1
2
3
range(start, stop): يبدأ التسلسل من قيمة start وتكون جزءًا منه، ويمتد حتى القيمة stop مع استبعاد القيمة نفسها من التسلسل.
مثال:
for i in range(1,4):
print (i)
المخرجات:
1
2
3
range(start, stop, step): يبدأ التسلسل من قيمة start وتكون جزءًا منه، ويمتد حتى القيمة stop مع استبعاد القيمة نفسها من التسلسل، ويتم تحديد الزيادة بين كل عددين متتاليين في التسلسل بواسطة قيمة step.
مثال:
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. فيما يلي شرح موجز لكل منهما:
continue: تستخدم الكلمة الأساسية continue لتخطي باقي التعليمات البرمجية داخل حلقة معينة والانتقال إلى الدورة التالية من التكرار.
مثال:
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).
break: تستخدم الكلمة الأساسية break لإنهاء الحلقة بالكامل والخروج منها، مهما كانت حالة التكرار.
مثال:
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
🤔