رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مثال پیشرفته ۲۵ دقیقه

فروشگاه کوچک (پروژهٔ پایانی)

فروشگاه بساز: کاتالوگ، سبد با تخفیف راهبردی، ذخیرهٔ JSON، تست سبز و گزارش هم‌روند امن.

صورت مسئله

فروشگاه بساز: کاتالوگ، سبد با تخفیف راهبردی، ذخیرهٔ JSON، تست سبز و گزارش هم‌روند امن.

مثال حل‌شده

فروشگاه کوچک

پیشرفته

صورت مسئله

از کجا شروع می‌کنی و هر بخشِ دوره کجای این پروژه می‌نشیند؟

راه‌حل گام‌به‌گام

    ۴ گام باقی مانده
    import json, queue, threading
    from dataclasses import dataclass, asdict
    
    @dataclass
    class Product:
        sku: str
        name: str
        price: float
    
    DISCOUNTS = {"normal": lambda a: a, "student": lambda a: a * 0.7}
    
    class Cart:
        def __init__(self):
            self.items = []
        def add(self, product, qty=1):
            if qty <= 0:
                raise ValueError("تعداد باید مثبت باشد.")
            self.items.append({"product": product, "qty": qty})
        def total(self, kind="normal"):
            raw = sum(i["product"].price * i["qty"] for i in self.items)
            try:
                return DISCOUNTS[kind](raw)
            except KeyError:
                raise ValueError(f"تخفیف ناشناخته: {kind}")
    
    def save(products, path):
        with open(path, "w", encoding="utf-8") as f:
            json.dump([asdict(p) for p in products], f, ensure_ascii=False, indent=2)
    
    cart = Cart()
    cart.add(Product("b1", "کتاب", 12000), 2)
    print(cart.total("student"))  # 16800.0

    مطالب مرتبط

    از همین بخش و با برچسب‌های مشترک

    این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

    وضعیت پیشرفت برای فروشگاه کوچک (پروژهٔ پایانی)