تمرين: اكتب برنامجًا يستقبل قائمة وقيمة، ثم يتحقق مما إذا كانت القائمة تحتوي على هذه القيمة. مثلًا، إذا كانت القيم:
__no_auto_translate__ things = ['This', 'is', 'a', 'list'] thing_to_find = 'is'
فيجب أن يطبع True. أما إذا كانت:
__no_auto_translate__ thing_to_find = 'other'
فيجب أن يطبع 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
النسخة الثانية صحيحة أيضًا، لكنها تتجنب دورات واختبارات لا حاجة لها بعد العثور على العنصر. يمكنك استخدام متتبع التنفيذ لرؤية الفرق بين النسختين خطوة بخطوة.