حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش الگوریتم و حل مسئله با پایتون؛ تمرین عملی

پیش‌بینی جست‌وجوی ناموفق پایتون؛ جای درست return

جست‌وجوی خطی و دودویی در پایتون؛ قرارداد و مرزها · 0٪

✍️ نبودن هدف در اولین خانه به معنی نبودن آن در کل فهرست نیست. برای اعلام شکست باید همه خانه‌های لازم را ببینیم. مثلاً در [2, 8, 4] جست‌وجوی هشت بعد از یک نابرابری هنوز ادامه دارد و در خانه یک موفق می‌شود. فقط برای هدفی مثل نه، کل مسیر به پایان می‌رسد.

حالا خروجی این قطعه را مشخص کن:

def find_first(values, target):
    for i, value in enumerate(values):
        if value == target:
            return i
    return -1

print(find_first([6, 1, 4], 9))

سه مقایسه انجام می‌شود و هیچ‌کدام برابر نیستند. به تورفتگی return -1 دقت کن؛ این خط بیرون حلقه است، بنابراین فقط پس از تمام شدن جست‌وجو اجرا می‌شود. خروجی، تعداد مقایسه‌ها یا آخرین عضو نیست، بلکه علامت شکست قرارداد است.

خطای رایج اینه که منفی یک را «خطای اجرا» تصور کنیم. اینجا هیچ استثنایی رخ نداده و تابع درست کار کرده است. اگر فهرست خالی هم باشد، تابع همین مقدار را برمی‌گرداند، چون هیچ خانه‌ای برای بررسی وجود ندارد. علامت شکست باید هنگام مصرف جواب جداگانه کنترل شود.

فعالیت شما

خروجی print را در جست‌وجوی 9 داخل [6,1,4] انتخاب کن؛ در نبود هدف find_first مقدار -1 می‌دهد.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

گزینه‌های پیش‌بینی خروجی

  1. 3
  2. 4
  3. -1