Python · از صفر

مبدل امن متن به عدد صحیح

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

۵۴ دقیقه · ۱۱۰ XP · try · except · ValueError

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

گزارش ورودی‌های نامعتبر بدون پنهان‌کردن خطاهای برنامه

ورودی

request.json: values: لیست رشته؛ با int تبدیل شود. اندیس رشته‌های نامعتبر در invalid_indices و عددهای معتبر در numbers بیایند.

خروجی

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

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. برای هر رشتهٔ values، تلاش می‌کنیم آن را با int به عدد صحیح تبدیل کنیم. رشتهٔ دارای فاصلهٔ دو طرف و علامت منفی قابل قبول است؛ "2.5" عدد صحیح نیست. مقدارهای موفق در numbers می‌آیند و اندیس مقدارهای ناموفق در invalid_indices ذخیره می‌شود. ترتیب هر دو فهرست باید با ورودی سازگار باشد.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

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

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

{
    "input": {
        "values": [
            " 12 ",
            "bad",
            "-3",
            "2.5"
        ]
    },
    "output": {
        "numbers": [
            12,
            -3
        ],
        "invalid_indices": [
            1,
            3
        ]
    }
}

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

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

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

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

  • pathlib و نام فایل؛ مسیر را مثل داده پردازش کنید
خطایابی در پایتون؛ try و except هدفمند ←

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

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