Python · از صفر

دفتر موجودی کالا

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

۳۶ دقیقه · ۶۵ XP · dict · get · Aggregation

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

تجمیع تعداد کالاهای تکراری با کلید رشته‌ای

ورودی

request.json: items: لیست شیءهای name رشته‌ای و quantity صحیح غیرمنفی. نام تکراری با هم جمع شود.

خروجی

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

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

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

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

{
    "input": {
        "items": [
            {
                "name": "pen",
                "quantity": 2
            },
            {
                "name": "book",
                "quantity": 3
            },
            {
                "name": "pen",
                "quantity": 4
            }
        ]
    },
    "output": {
        "stock": {
            "pen": 6,
            "book": 3
        },
        "total": 9
    }
}

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

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

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

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

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

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

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