Python · از صفر

تشخیص عدد اول با آزمون مرزی

تمرین مرحلهٔ 22: ساخت تابع مستقل و بررسی ورودی‌های مرزی؛ بدون نیاز به یادگیری ماشین و با ارزیابی واقعی خروجی.

۶۲ دقیقه · ۱۳۰ XP · Testing · assert · Functions

هدف و راهنمای انجام

ساخت تابع مستقل و بررسی ورودی‌های مرزی

ورودی

request.json: numbers: لیست عدد صحیح؛ برای هر عضو، بولی اول‌بودن برگردانید. عددهای کمتر از دو اول نیستند.

خروجی

result.json مطابق ساختار مثال؛ تمام کلیدهای نشان‌داده‌شده الزامی هستند.

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. تابع is_prime ابتدا عددهای کمتر از دو را رد می‌کند. سپس مقسوم‌علیه‌ها را تا وقتی مربعشان از n بیشتر نشده بررسی می‌کند؛ اگر هیچ مقسوم‌علیهی پیدا نشود عدد اول است. solve نتیجهٔ تابع را برای همهٔ عددهای ورودی به ترتیب می‌سازد. برای تمرین محلی می‌توانید assert is_prime(2) و assert not is_prime(1) را اضافه کنید.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

Python 3؛ دادهٔ ورودی طبق قرارداد است. تابع solve باید برای همهٔ ورودی‌ها کار کند، نه فقط مثال. کتابخانهٔ خارجی لازم نیست؛ ماژول‌های استاندارد همراه Python 3 هستند.

مثال ورودی و خروجی

{
    "input": {
        "numbers": [
            -7,
            0,
            1,
            2,
            3,
            9,
            49
        ]
    },
    "output": {
        "prime": [
            false,
            false,
            false,
            true,
            true,
            false,
            false
        ]
    }
}

معیارهای موفقیت

  • ساختار و نوع خروجی با قرارداد برابر است.
  • محاسبه برای چند ورودی متفاوت و حالت‌های مرزی درست است.
  • اجرای ساده XP نمی‌دهد؛ فقط قبولی ارزیابی معتبر باعث ثبت تکمیل می‌شود.

کتابخانه‌ها: json, pathlib

پیش‌نیاز و ترتیب یادگیری

  • Decimal و دقت مالی؛ گردکردن را صریح تعریف کنید
تست تابع در پایتون؛ assert و مثال نقض ←

برای شروع، مقالهٔ بالا را بخوانید. Python 3 و کتابخانه‌های موردنیاز در میزکار آماده‌اند؛ نصب آنلاین از ترمینال میزکار لازم نیست.

برای نوشتن و اجرای کد وارد شوید