میخواهیم یک فروشگاه آنلاین را پیادهسازی کنیم که در آن کالاهایی برای فروش بگذاریم و کاربران آنها را خریداری کنند و نظرات خود را راجع به کالاها بگذارند. بخشی از کد فروشگاه توسط فردی زده شدهاست و در حال حاضر در دسترس نیست. شما باید به آن امکاناتی اضافه کنید.
داخل پروژه ۲ فایل پایتون با نامهای models.py
و store.py
است. شما باید توابع ناقص فایل store.py
را تکمیل کنید.
داخل کلاس Store
چند تابع وجود دارد که نیاز به تکمیل دارند. همچنین object
آن دارای کالاهای موجود و کاربران ثبت نام شدهاست. کالاها به صورت dictonary
ذخیره شدهاند که هر key
آن یک کالا(Product
) است و هر value
آن تعداد موجودی آن کالاست. کاربران هم به صورت list
ذخیره شدهاند.
وظیفهی شما این است که توابع زیر را برای کلاس Store
پیادهسازی کنید.
remove_product
این تابع وظیفهی حذف کالا از فروشگاه را دارد.در صورت موجود نبود این تعداد کالا، استثایی با پیام Not Enough Products
پرتاب شود و هیچ کالایی از فروشگاه حذف نشود. در صورتی که موجودی یک کالا به صفر برسد باید از دیکشنری کالاها حذف شود.
add_user
این تابع یک کاربر را به کاربران اضافه میکند. در صورتی که نام کاربری تکراری باشد کاربری اضافه نمیکند و مقدار None
بر میگرداند؛ در غیر این صورت، رشتهی نام کاربری آن کاربر را برمیگرداند.
get_total_asset
این تابع جمع کل داراییهای فروشگاه را برمیگرداند (دارایی فروشگاه برابر مجموع قیمت کالاهای موجود است.)
get_total_profit
این تابع مقدار سودی که فروشگاه کردهاست را برمیگرداند. مقدار سود فروشگاه برابر جمع قیمت کالاهای فروختهشده است. ( تعداد هریک از کالاهای لیست bought_products
در کلاس User
یک است.)
get_comments_by_user
این تابع لیست متن نظراتی که یک کاربر خاص روی محصولات موجود در فروشگاه گذاشتهاست را بر میگرداند (ترتیب آنها مهم نیست)
get_inflation_affected_product_names
این تابع لیستی از نام کالاهایی که تورم روی آنها تاثیر گذاشتهاست را برمیگرداند. (تورم روی کالاهایی اثر گذاشتهاست که کالایی هم اسم آنها ولی با قیمت کمتر داخل فروشگاه وجود داشتهباشد). توجه کنید که اگر چند قیمت از یک کالا موجود باشد، نام آن فقط یک بار باید در لیست بیاید. ترتیب اعضای لیست اهمیتی ندارد.
clean_old_comments
این تابع ورودی یک تاریخ از نوع datetime
میگیرد و همهی نظراتی که قبل از آن تاریخ روی پستها گذاشته شدهاند را حذف میکند.
get_comments_by_bought_users
این تابع لیستی از متن نظراتی را بر میگرداند که صاحب آن، کالا را خریداری کردهاست.
store.py
هستید.شما باید کلاس Store
موجود در فایل store.py
را تکمیل و سپس این فایل را ارسال کنید.