الحلقات التكرارية في Python
ماهي الحلقات التكرارية Loops المتوفرة في Python …؟؟؟!! و كيف يتم بناء حلقة تكرار loop في بايثون .؟!!! كيف يتم التحكم بحلقة التكرار في بايثون..؟!!
تعتبر الحلقات التكرارية في بايثون أدوات قوية وفعالة لتنفيذ نفس الأوامر مرارًا وتكرارًا بشكل تلقائي، وهي أساسية في بناء البرامج والتعامل مع البيانات.استكمالاً لمقالات عن تعليمات لغة Python نتكلم في هذا المقال عن الحلقات التكرارية Loops حيث توفر لغة Python نوعين من الحلقات التكرارية وهي while ..loop و for…loop لنبدأ…
في هذا المقال نتعرف على:
الحلقات التكرارية في البرمجة
في البرمجة يتم قراءة التعليمات البرمجية بتسلسل واحدة تلو الاخرى ، ولكن عندما نحتاج الى تكرار تعليمات معينة عدد من المرات هنا نحتاج لاستخدام الحلقات التكرارية حيث تساعدنا الحلقات التكرارية في بناء جملة من التعليمات التي تكرر بناء على شروط معينة. ويوضح الشكل التالي طريقة العمل مع تعليمات الحلقات التكرارية Loops :
وتوفر لغة برمجة Python الأنواع التالية من الحلقات التكرارية للتعامل مع متطلبات التكرار.
الحلقات التكرارية في Python
1- While…loop
في هذا النوع من الحلقات التكرارية في بايثون تقوم تعليمة while بتنفيذ جملة او مجموعة من الجُمل البرمجية بشكل متكرر طالما أن شرطًا معينًا صحيحًا.ولكن عندما يتم اختبار الشرط وتكون النتيجة خاطئة ، سيتم تخطي مجموعة تعليمات في حلقة while وسيتم تنفيذ الجملة الأولى بعد حلقة while . وتكون الصيغة العامة لحلقة while في لغة برمجة Python هي :
while expression: statement(s)
وهنا مثال يوضح استخدام حلقة التكرار while في بايثون:
...........
x = 0
while (x < 5):
print (x)
x += 1
...........
لتكـن النتيجـة
0 1 2 3 4
ونذكر ان في Python ، تُعتبر جميع العبارات التي تم وضع مسافة بادئة لها بنفس عدد مسافات الأحرف بعد بنية البرمجة جزءًا من كتلة واحدة من التعليمات البرمجية. تستخدم Python المسافة البادئة كطريقة لتجميع العبارات.
كما يجب توخي الحذر عند استخدام while loops نظرًا لاحتمال ألا يتم حل هذا الشرط أبدًا إلى قيمة False . ينتج عن هذا حلقة لا تنتهي أبدًا. تسمى هذه الحلقة الحلقة اللانهائية. قد تكون الحلقة اللانهائية مفيدة في برمجة العميل / الخادم client /server حيث يحتاج الخادم إلى العمل بشكل مستمر حتى تتمكن برامج العميل من الاتصال به عند الحاجة.لنأخذ مثال على حلقة لانهائية :
...........
x = 6
while (x > 5):
print (x)
x += 1
...........
استخدام عبارة else مع while Loop
تدعم Python أن يكون لدينا تعليمة else مرتبطة بتعليمة الحلقة التكرارية .و إذا تم استخدام تعليمة else مع حلقة while ، فسيتم تنفيذ تعليمة else عندما يصبح الشرط خطأ. يوضح المثال التالي مجموعة عبارة else مع عبارة while التي تطبع رقمًا طالما أنه أقل من 5 ، وإلا فسيتم تنفيذ عبارة else.
...........
while (x < 5):
print (x)
x += 1
else:
print('x is not less than 5')
...........
لتكـن النتيجـة
0 1 2 3 4 x is not less than 5
2- for…loop
النوع الثاني من الحلقات التكرارية في بايثون هي حلقة for تعتبر تعليمة في python أقل شبهاً في تعليمات for الموجودة في لغات مجوعة C حيث يعد الاستخدام الأبرز لها في Python مع مجموعات البيانات ( collections ) مثل list, tuple, dictionary, set, or a string حيث تستخدم كطريقة للمرور على العناصر بشكل متسلسل و لا تتطلب الحلقة for متغير يتم تعيينه مسبقًا للفهرسة .. أي باستخدام حلقة for ، يمكننا تنفيذ مجموعة من العبارات ، مرة واحدة لكل عنصر في القائمة ، أو tuple ، أو set ، إلخ. - وتكون الصيغة العامة لحلقة for في لغة برمجة Python هي:
for iterating_var in sequence: statements(s)
وفيما يلي مثال على الحلقة التكرارية for في بايثون :
...........
# use a for loop over a collection
days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
for d in days:
print (d)
...........
لتكـن النتيجـة
Mon Tue Wed Thu Fri Sat Sun
وللطباعة رقم الـ index تستخدم الدالة enumerate() لاحظ /ي المثال التالي:
...........
#using the enumerate() function to get index
days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
for i, d in enumerate(days):
print (i, d)
...........
لتكـن النتيجـة
0 Mon 1 Tue 2 Wed 3 Thu 4 Fri 5 Sat 6 Sun
ويمكن كذلك استخدام استخدام الدالة range() مع حلقة for لتحديد نطاق معين حيث تأخذ الدالة range() اما Parameter واحد أو 2 هذه الـ Parameters تمثل حدود النطاق للحلقة for لنرى مثال يوضح طريقة عمل الدالة range()
...........
for i in range(3):
print(i)
print('-----------')
for x in range(5,10):
print(x)
...........
لتكـن النتيجـة
0 1 2 ----------- 5 6 7 8 9
استخدام عبارة else مع For Loop
وتدعم Python أن يكون هناك تعليمة else مرتبطة بتعليمة حلقة التكرار for وإذا تم استخدام جملة else مع حلقة for ، فسيتم تنفيذ عبارة else عندما تستنفد الحلقة تكرار القائمة. لاحظ /ي المثال التالي :
...........
for x in range(5,10):
print(x)
else:
print('x is not in the range from 5 to 10')
...........
لتكـن النتيجـة
5 6 7 8 9 x is not in the range from 5 to 1
Nested Loop
تسمح لغة برمجة Python باستخدام حلقات التكرار المتداخلة ونعني الحلقات المتداخلة حلقة تكرار بداخل حلقة تكرار أخرى ويمكن أن تكون الحلقات من نوع while او for ويمكن ان ان تكون احدى الحلقات المتداخلة من نوع والأخرى من نوع آخر .(يمكن الاطلاع على مقال عن الحلقات التكرارية المتدخلة ) وهنا أمثلة لتوضيح مفهوم الحلقات التكرارية المتداخلة.
...........
# nested while loop
x = 0
while x < 5:
y = 0
print('****')
while y <= x :
y += 1
print(y)
x += 1
...........
...........
#Nested for loop
for i in range(5):
print('****')
for x in range(3):
print(x)
...........
...........
#Nested for and while loops
for i in range(5):
x = 0
while x < i:
print(x)
x += 1
print('****')
...........
التحكم في الحلقة التكرارية Loop
في الحلقات التكرارية يمكن التحكم في التنفيذ المتسلسل الطبيعي للتعليمات حلقة التكرار من خلال عبارات التحكم . وتدعم Python عبارات التحكم break, continue وهنا توضيح لكيفية اختلاف تأثير كل منهما على الحلقة التكرارية:
break
وتعمل break مع الحلقات التكرارية وتقوم بإنهاء حلقة التكرار الحالية ويستأنف التنفيذ في التعليمة التالية للحلقة التكرار ، تمامًا مثل تعليمة break التقليدية في C# (وهنا مقال عن طريقة العمل مع حلقات التكرار في لغة C#).
ويعد الاستخدام الأكثر شيوعًا للـ break هو عندما يتم تشغيل بعض الشروط الخارجية التي تتطلب خروجًا سريعًا من حلقة. كما يمكن استخدام تعليمة break في حلقات while و for على حد سواء. وعندما نكون نستخدم حلقات التكرار المتداخلة ، فإن تعليمة break توقف تنفيذ الحلقة الداخلية وتبدأ في تنفيذ السطر التالي من التعليمات البرمجية بعد block الخاص بالحلقة . وتكون طريقة بناء الحلقة مع break كالتالي :...........
#Use the break statements
for x in range(5,10):
if (x == 7): break
print (x)
...........
لتكـن النتيجـة
5 6
continue
تعمل Continue مع الحلقات التكرارية وتقوم تعليمة continue بـ التوقف عن متابعة التنفيذ للعبارة محددة في حلقة التكرار الحالي وتنقل عنصر التحكم مرة أخرى إلى العبارة التالية من حلقة التكرار .ويمكن استخدام تعليمة continue في كل من الحلقات while و for . وتكون طريقة بناء الحلقة مع continue كالتالي:
...........
#Use the continue statements
for x in range(5,10):
if (x == 7): continue
print (x)
...........
لتكـن النتيجـة
5 6 8 9
جميع الأمثلة لهذا المقال متوفرة هنا.
تتميز حلقات التكرار في بايثون بسهولة استخدامها وقدرتها على تحسين كفاءة البرامج، كما أنها تتيح للمستخدمين الحصول على نتائج دقيقة وموثوقة وتوفير الوقت والجهد في عمليات البرمجة.ومن خلال هذا المقال، تعرفنا على كيفية استخدام جُمل التكرار في بايثون كما تعرفنا على الطرق الفعالة لتنفيذ هذه الجُمل في البرمجة والتعامل مع البيانات بشكل أسهل وأكثر فعالية.
إلى هنا ينتهي هذا المقال الذي شرح الحلقات التكرارية في Python من while و for مع أمثلة عليها، كما شرح المقال الحلقات التكرارية المتداخلة في Python وطريقة بنائها من خلال تعليمات Python . بالإضافة إلى شرح طريقة التحكم فى الحلقات التكرارية عن طريق العبارات continue و break.