إنهاء الحلقات مبكراً باستخدام break
تمرين: اكتب برنامجًا يستقبل قائمة وقيمة، ثم يتحقق مما إذا كانت القائمة تحتوي على هذه القيمة. مثلًا، إذا كانت القيم:
things = ['This', 'is', 'a', 'list']
thing_to_find = 'is'
فيجب أن يطبع True. أما إذا كانت:
thing_to_find = 'other'
فيجب أن يطبع False.
ستحتاج إلى حلقة.
ستحتاج إلى جملة
if.ستحتاج إلى عامل مقارنة.
تحديدًا
==.تحتاج إلى متغير منطقي تطبعه في النهاية.
إذا وجدت العنصر في القائمة، اجعل هذا المتغير
True.بعد العثور على العنصر لا يمكن أن يصبح «غير موجود» لاحقًا.
أي أنك بعد ضبط المتغير إلى
Trueيجب ألا تغيّره إلى قيمة أخرى.لا تستخدم
else.لا يوجد سبب لضبط المتغير إلى
Falseداخل الحلقة.
جيد جدًا!
حل نموذجي قد يبدو هكذا:
found = False
for thing in things:
if thing == thing_to_find:
found = True
print(found)
غالبًا سيكون حلك قريبًا من ذلك. هذا الحل صحيح، لكنه ينفذ الحلقة على القائمة كلها حتى لو وجد العنصر في بدايتها. تستطيع إيقاف أي حلقة فورًا باستخدام break:
for thing in things:
if thing == thing_to_find:
found = True
break
النسخة الثانية صحيحة أيضًا، لكنها تتجنب دورات واختبارات لا حاجة لها بعد العثور على العنصر. يمكنك استخدام متتبع التنفيذ لرؤية الفرق بين النسختين خطوة بخطوة.