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

دیباگ return زودهنگام در پایتون؛ بررسی همه اعضای فهرست

باگ‌های منطقی پایتون؛ شرط، حلقه و بازگشت · 0٪

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

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

✍️ مثال حل‌شده:

def has_short_name(names):
    for name in names:
        if len(name) < 3:
            return True
    return False

assert has_short_name(["Sara", "Li"]) is True

حالا نوبت توئه: contains_even(values) را بنویس؛ اگر حداقل یک عدد صحیح زوج وجود دارد True و در غیر این صورت False بده. []=>False، [1,3,4]=>True و [1,3]=>False است. صفر و عدد زوج منفی هم زوج‌اند. برای جواب منفی همه فهرست را بررسی کن و عضوها را تغییر نده.

فعالیت شما

contains_even(values) را بنویس؛ اگر حداقل یک عدد صحیح زوج وجود دارد True و در غیر این صورت False بده. []=>False، [1,3,4]=>True و [1,3]=>False است. صفر و عدد زوج منفی هم زوج‌اند. برای جواب منفی همه فهرست را بررسی کن و عضوها را تغییر نده.

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

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

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

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

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

کد اولیهٔ فعالیت

def contains_even(values):
    # شاهد زوج را پیدا کن
    pass