✍️ برای گزارش محصولی، نام محصول کلید گروه است و مبلغ ردیف به جمع همان گروه اضافه میشود. لازم نیست ردیفها از قبل کنار هم باشند. دیکشنری میتواند فروشهای دفتر در ابتدا و انتهای فهرست را در یک نتیجه جمع کند، بدون اینکه جزئیات ورودی را تغییر دهد.
مثلاً دو دفتر با قیمت ده و بعد یک دفتر با قیمت پانزده، درآمد دفتر را سیوپنج میکند. قیمت واحد ممکن است بین دو فروش همان محصول فرق کند، پس نمیتوان مجموع تعدادها را در یک قیمت دلخواه ضرب کرد؛ مبلغ هر ردیف را اول جدا حساب میکنیم و بعد جمع میزنیم.
کد ناقص حلقه را دارد؛ محاسبه مبلغ و افزایش گروه را کامل کن. دادهها از قبل معتبرند: product پاکشده و غیرخالی، quantity صحیح مثبت و unit_price صحیح نامنفی است. خروجی فقط درآمد هر محصول است؛ در پروژه نهایی تعدادها را هم کنار آن نگه میداریم. خطای رایج، بازنویسی جمع قبلی با مبلغ تازه یا استفاده از مقدار unit_price به تنهایی است. فهرست خالی دیکشنری خالی میدهد و محصول با قیمت صفر باید با درآمد صفر در گزارش حضور داشته باشد.
تابع آماده course_check از ورودی کپی عمیق میگیرد، تابع اصلی را اجرا میکند و تغییر ورودی را رد میکند؛ آن را نگه دار و فقط تابع اصلی را کامل کن.
فعالیت شما
تابع revenue_by_product(rows) فهرست رکوردهای معتبر product رشته پاکشده، quantity صحیح مثبت و unit_price صحیح نامنفی میگیرد و دیکشنری {محصول:مجموع quantity*unit_price} میدهد. تکرار نام تجمیع شود، قیمتهای متفاوت مستقل محاسبه شوند، محصول با درآمد صفر هم باقی بماند. خالی {}؛ دو فروش دفتر با (2,10) و (1,15) درآمد 35 دارند. ورودی تغییر نکند. course_check آماده را نگه دار؛ این تابع تغییر ورودی را رد و همان خروجی اصلی را برمیگرداند.