Python · از صفر

سبد خرید با تخفیف

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

۳۸ دقیقه · ۷۰ XP · def · Parameters · return

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

جداکردن محاسبهٔ جمع و اعمال تخفیف در تابع

ورودی

request.json: items: لیست price عددی و quantity صحیح غیرمنفی؛ discount: درصد صفر تا صد. خارج بازه: error=invalid_discount.

خروجی

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

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. تابع subtotal مجموع price ضرب در quantity همهٔ سطرها را می‌سازد. solve درصد تخفیف را بررسی می‌کند و مبلغ پس از تخفیف را برمی‌گرداند. تخفیف معتبر از صفر تا صد است. اگر ۱۰ درصد تخفیف داریم، باید مجموع را در ۰٫۹ ضرب کنیم؛ کم‌کردن عدد ۱۰ از مبلغ، همان معنی را ندارد.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

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

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

{
    "input": {
        "items": [
            {
                "price": 20,
                "quantity": 3
            }
        ],
        "discount": 10
    },
    "output": {
        "subtotal": 60,
        "total": 54
    }
}

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

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

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

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

  • دیکشنری در پایتون؛ کلید، مقدار و تجمیع
تابع در پایتون؛ ورودی، خروجی و مسئولیت مشخص ←

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

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