تعلم البرمجة بلغة بايثون #21"

في هذا الدرس سنكمل حديثنا عن الحلقات في بايثون ونتحدث عن حلقة for.

حلقة for

تعرفنا سابقاً على حلقة while ورأينا أنها تتكرر طالما بقي شرطها متحققاً. الآن سنتعرف على حلقة for وهي نوع آخر من الحلقات تتكرر لعدد محدد (معروف مسبقاً) من المرات.

لنر المثال التالي عن حلقة for:

for i in [1,2,4,5,7]:
  print(i)
print('انتهى')

في هذه الحلقة سيتم تكرار تعليمات الحلقة لكل عنصر في هذه القائمة: [1,2,4,5,7]. هذا يعني أن أمر الطباعة هذا:

print(i)

سيتم تنفيذه مرة لكل عنصر في تلك القائمة، وفي كل مرة ستكون قيمة i نفس قيمة ذلك العنصر. يعني أنه في المرة الأولى لتكرار الحلقة سيتم طباعة “1” وهو العنصر الأول في القائمة؛ في التكرار الثاني سيتم طباعة “2” والذي هو العنصر الثاني في القائمة، وهكذا حتى نصل إلى العنصر الأخير وهو “7” حيث ستتم طباعته ثم تنتهي الحلقة ويتم الخروج منها إلى الأمر الذي بعدها وهو أمر الطباعة الذي سيطبع كلمة “انتهى”.

في هذا المثال اخترنا أن يكون اسم متغير الحلقة i لكن يمكن أن نختار أي اسم نريده.

في المثال التالي سنمر على قائمة تحتوي على سلاسل نصية:

for f in ['Ahmad', 'Leen', 'John']:
  print('Happy birthday ' + f)

هذا البرنامج سيمر على عناصر هذه القائمة وسيطبع لكل عنصر عبارة تهنئة. في البداية سيمر على “Ahmad” وبالتالي ستكون قيمة المتغير f تساوي “أحمد” وسينفذ الأوامر داخل الحلقة. هناك أمر واحد، أمر الطباعة، فسينفذه ويطبع:

Happy birthday Ahmad

ثم سيمر على بقية العناصر ويطبع جملاً مشابهة:

Happy birthday Leen
Happy birthday John

تحليل حلقة for

لننظر إلى المثال التالي:

for w in [1,3,4,7,3]:
  print(w)

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

w = 1
print(w)
w = 3
print(w)
w = 4
print(w)
w = 7
print(w)
w = 3
print(w)

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

ملاحظة: break و continue تعمل مع حلقة for مثلما تعمل مع حلقة while.

ملاحظة: رأينا في هذا الدرس شيئاً جديداً هو القوائم. سنتعرف عليها بالتفصيل في المستقبل.

فيديو الدرس