دورة Python للمبتدئين

4: البرمجة بلغة بايثون – Break, Continue, Pass

Python3.8

السلام عليكم و رحمة الله و بركاته

في هذا الدرس، سنكمل ما بدأناه في الدرس الماضي مع الحلقات While و Loop.

سنتعرف على العبارات التالية:

  • Break statement
  • Continue statement
  • Pass statement

لنبدأ!

Break statement

عبارة Break تُستَعمل من أجل إيقاف الحلقة عندما تحقق شرطا معينا و لا تكرر بعدها و يتقل المترجم للسطر التالي من الشفرة.

ففي الوضع العادي للحلقة،سواء While أو Loop، يقوم البرنامج بالتأكد من تحقق الشرط حددناه، إذا تحقق ينتقل إلى الشفرة داخل الحلقة و يقوم بتنفيذها. و يكرر العملية.

في حالة وجود معطى لا يحقق الشرط، يقوم البرنامج بتجاهله و يتجاوزه إلى المعطى التالي، أو محتوى المتغير.

لكن، هنا يحدث العكس، نحدد شرطا، إذا تحقق نقوم بإيقاف الحلقة في لحظة تحقق ذلك الشرط. و يتجاوز البرنامج هذه الحلقة لأنها توقفت.

في المثال التالي، سيتضح الأمر أكثر:

for letter in 'Shafrah':     
   if letter == 'r':
      break
   print (letter)

النتيجة:

S
h
a
f

هذه الشفرة تسمح لنا بطباعة أو إظهار كل حرف من حروف كلمة Shafrah

لكن عند بلوغ الحرف r تتوقف الحلقة و يخرج البرنامج منها.

لتوضيح الأمر أضفنا أمر print(letter) خارج الصيغة if. أي سيتم طباعة كل الحروف قبل الوصول إلى الحرف r.

ماذا سيحدث لو كان الأمر print داخل الصيغة if؟

for letter in 'Shafrah':     
   if letter == 'r':
      break
      print (letter)

ملاحظة:

السطور الحمراء توضح المسافة بين الحلقة و الصيغة الشرطية if و محتوى كل واحدة.

لنخبر البرنامج بأن if داخل الحلقة لابد لنا أن نترك مساحة في بداية السطر كما هو موضح في الصورة: و في الغالب تكون 4 مساحات باستعمال SpaceBar.

و من أجل تحديد محتوى الصيغة if لا بد من ترك مساحة أيضا في بداية السطر. و هكذا يمكننا أن نميز بين السطور التي تنتمي لكل من for و if

لنعد إلى سؤالنا:

في الصورة أعلاه، أضفنا سطر print(letter) داخل الصيغة if.

في هذه الحالة، عندما ينفذ البرنامج الشفرة، من الحرف S إلى الحرف f، لن يفعل أي شيء غير تكرار الحلقة كل مرة.

هذا راجع لأن الحلقة في الحالة الثانية أصبحت تتكون من أمر برمجي واحد و هو if فقط.

في حين كانت من قبل تحتوي على سطرين : if و print

عند تحقق شرط الصيغة if:

سيقوم البرنامج بالتوقف مباشرة بعد تحقق الشرط و هو عندما يكون الحرف هو r.

و الأمر الذي يلي break لن يتم تنفيذه. ذلك لأنه البرنامج توقف قبل أن يبلغه.

for letter in 'Shafrah':     
   if letter == 'r':
      print (letter)
      break

النتيجة:

r

و لكن في الصورة أعلاه، عندما قمنا بجعل print(letter) قبل الأمر break، تمت طباعة الحرف r فقط. و هذا بديهي لأنه الشرط كان letter == ‘r’

Continue statement

أمر continue يقوم بإعادة البرنامج إلى بداية الحلقة. أي أنه يمنع من تحقيق باقي الأوامر التي تليه و بالتالي يتم تجاوزها.

المثال التالي يوضح الأمر أكثر:

for letter in 'Shafrah':
    if letter == 'r':
        continue
    print(letter)

النتيجة:

S
h
a
f
a
h

حددنا شرطا داخل الحلقة for. الشرط هو أن يكون الحرف هو (letter == ‘r’). عندما يتحقق الشرط ينفذ البرنامج الأمر continue و يعود إلى بداية الحلقة دون تنفيذ الأمر التالي في حلقة for و هو print(letter).

ما يحدث هنا هو أن جميع الحروف ستظهر ما عدا الحرف r. فالحلقة توقفت عند الحرف r و تمت إعادة تشغيلها من جديد قبل بلوغ الأمر print. و هذا هو دور الأمر continue!

Pass statement

عبارة Pass هي عبارة محايدة، أي أنها لا تقوم بأية عملية ما. بل تعمل كحافظة للمكان في الشفرة.

لنفترض مثلا، خلال بناء كود برمجي، قد نفكر في ترك مكان ما فارغ حتى نجد طريقة لكتابة الشفرة فيه، و لكن ترك فراغ بعد دالة ما غير معرفة بعد مثلا قد يسبب في ظهور خطأ.

إذا، بدل ترك المكان فارغا، نكتب عبارة pass و نتجنب ظهور الخطأ!

ملاحظة:

الدوال المعرفة باستعمال def سنتطرق لها لاحقا في دورتنا فلا داعي للقلق حولها الآن.

نهاية الدرس الثالث

بلغنا نهاية هذا الدرس، نتمنى أن يكون واضحا كفاية.
في الدرس التاي سنتطرق و أخيرا لبعض التطبيقات البسيطة.

السابق
3: البرمجة بلغة بايثون – الحلقات For و While و الدالة If
التالي
5: البرمجة بلغة بايثون – Input statement و تطبيقات

تعليقان

أضف تعليقا

  1. التنبيهات : البرمجة بلغة بايثون: دورة خاصة بالمبتدئين – الدرس الرابع - شِفْرَة

  2. التنبيهات : 8 : البرمجة بلغة بايثون - معالجة الاستثناءات - شِفْرَة

شاركنا برأيك