Python · از صفر

فاکتور دقیق با اعشار ده‌دهی

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

۶۰ دقیقه · ۱۲۵ XP · decimal · Quantize · Rounding

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

محاسبهٔ مبلغ با Decimal و قالب خروجی دو رقم اعشار

ورودی

request.json: items: لیست price رشتهٔ ده‌دهی غیرمنفی و quantity صحیح غیرمنفی. جمع نهایی با ROUND_HALF_UP دو رقم شود و total رشته بماند.

خروجی

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

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. هر قیمت رشته‌ای با Decimal خوانده و در quantity ضرب می‌شود. جمع از Decimal("0") آغاز می‌شود تا همهٔ محاسبه‌ها ده‌دهی بمانند. در پایان quantize با 0.01 و ROUND_HALF_UP اعمال می‌شود؛ یعنی نیم‌صدم رو به بالا گرد می‌شود. خروجی total عمداً رشته است تا همیشه دو رقم اعشار، حتی برای صفر، حفظ شود.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

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

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

{
    "input": {
        "items": [
            {
                "price": "0.10",
                "quantity": 3
            }
        ]
    },
    "output": {
        "total": "0.30"
    }
}

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

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

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

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

  • ماژول statistics؛ میانگین و میانه چه فرقی دارند؟
Decimal و دقت مالی؛ گردکردن را صریح تعریف کنید ←

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

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