Pyley test vaela

HST2: OBJECT ORIENTED PROGRAMMA LAB ShoppingCart deb ataluvchi sinf yaratish.

Hech qanday argumentlarni qabul qilmaydigan va umumiy xususiyatni nolga aylantiradigan va ob'ektlar nomi ostidagi bo'sh dict attributini ishga tushiradigan ijodkor yarating.

Item_name, miqdor va narx argumentlarini talab qiladigan add_item usulini yaratish. Ushbu usul qo'shimcha qiymatlarni jami joriy qiymatiga qo'shishi kerak. Bundan tashqari, dict ob'ektlariga elementni kiritish kerak, chunki kalit elementning nomi va qiymati elementning miqdori.

Add_item kabi o'xshash argumentlarni talab qiladigan usulni o'chirish usuli yarating. Xarid qilish vositasiga qo'shilgan narsalarni olib tashlash kerak emas. Ushbu usul olib tashlangan elementlarning narxini joriy summa miqdoridan tushirish va shunga muvofiq ravishda dictlarni yangilash kerak.

Agar olib tashlash kerak bo'lgan mahsulot miqdori savatda mavjud bo'lgan mahsulot miqdoridan ortiq bo'lsa, ushbu elementning barcha yozuvlari olib tashlanishi kerak, deb hisoblang.

Cash_paid-da olib boradigan usulda to'lovni amalga oshiring va to'lovning balans qiymatini qaytaring. Agar naqd pul to'lash summasi to'liq qoplanishi uchun etarli bo'lmasa, "Naqd pul to'lagan" miqdori etarli emas.

Har qanday argumentlarni qabul qilmaydigan va 100 hajmdagi atributni ishga tushiradigan konstruktorga ega bo'lgan do'konni yaratish.

Shop ShopCart-dan meros qilib olinguniga ishonch hosil qiling.

Shop do'konida Remove_item usulini bekor qilinsin, shuning uchun Do'konni o'chirish usuli argumentlarsiz bir sonni kamaytiradi.

# OOP Lab

class ShoppingCart(object):
  def __init__(self):
    total = 0
    item = {}
    self.total = total
    self.item = item
  def add_item(item_name, quantity, price):
    cost = quantity * price
    self.total += cost
    self.item = {"item_name":quantity}
  def remove_item(item_name,quantity,price):
    cost = quantity * cost
    self.total -= cost
    for i in self.item:
        if quantity > self.item[i]:
            del self.item["item_name"]
    def checkout(cash_paid):
        if cash_paid < self.total:
            return "Cash paid not enough"
class Shop(ShoppingCart):
    def __init__(self):
        quantity = 100
        self.quantity = quantity
    def remove_item():
        self.quantity -= 1

#! Error State the following: my add_item is having four argument instead of three each time i run this code:

Iltimos, ushbu kod yordamida yordamga muhtoj ekanligimni, python bilan yangi bo'lganligimni, hoziroq meni qutqarish uchun pythondagi dasturiy farishtani taqdir qilaman.

0
@ LazarLjubenovich Odatda uy vazifasi so'rovlariga javob berishga harakat qilaman, chunki umuman olganda, siz haqsiz, ular o'z vazifalarini bajarib yuborishadi. Biroq, bu holatda OP O'zbekistondagi muammoni hal etishga urinib ko'rdi, ishlarini ko'rsatdi va bu yechimga juda yaqin edi, shuning uchun menimcha, to'g'ri yo'nalishdagi shov-shuvlar asossiz bo'lmaydi.
qo'shib qo'ydi muallif CoryKramer, manba
@ LazarLjubenovich Odatda uy vazifasi so'rovlariga javob berishga harakat qilaman, chunki umuman olganda, siz haqsiz, ular o'z vazifalarini bajarib yuborishadi. Biroq, bu holatda OP O'zbekistondagi muammoni hal etishga urinib ko'rdi, ishlarini ko'rsatdi va bu yechimga juda yaqin edi, shuning uchun menimcha, to'g'ri yo'nalishdagi shov-shuvlar asossiz bo'lmaydi.
qo'shib qo'ydi muallif CoryKramer, manba
Iltimos, bu erda faqat uy vazifasi topshiriqlarini joylashtirmang.
qo'shib qo'ydi muallif Lazar Ljubenović, manba
Iltimos, bu erda faqat uy vazifasi topshiriqlarini joylashtirmang.
qo'shib qo'ydi muallif Lazar Ljubenović, manba
Siz haqsiz, @cory
qo'shib qo'ydi muallif delino, manba
Siz haqsiz, @cory
qo'shib qo'ydi muallif delino, manba
Kulgili, o'zimning 2-turimda o'zimning platformamda yordam so'ramasdan qolgan 4 ta lap testini hal qildim va agar xato qilmasangiz, platforma muammoni hal qilishga yordam beradi deb o'ylayman ... men hayotingizda birovni hal qilyapsizmi deb hayron bo'ldim @CoryKramer u ochiq manba rivojlantirishga qanday hissa qo'shishni o'rganishi kerak
qo'shib qo'ydi muallif delino, manba
Kulgili, o'zimning 2-turimda o'zimning platformamda yordam so'ramasdan qolgan 4 ta lap testini hal qildim va agar xato qilmasangiz, platforma muammoni hal qilishga yordam beradi deb o'ylayman ... men hayotingizda birovni hal qilyapsizmi deb hayron bo'ldim @CoryKramer u ochiq manba rivojlantirishga qanday hissa qo'shishni o'rganishi kerak
qo'shib qo'ydi muallif delino, manba
Kulgili, o'zimning 2-turimda o'zimning platformamda yordam so'ramasdan qolgan 4 ta lap testini hal qildim va agar xato qilmasangiz, platforma muammoni hal qilishga yordam beradi deb o'ylayman ... men hayotingizda birovni hal qilyapsizmi deb hayron bo'ldim @CoryKramer u ochiq manba rivojlantirishga qanday hissa qo'shishni o'rganishi kerak
qo'shib qo'ydi muallif delino, manba

6 javoblar

Sinf usullari, masalan, birinchi argument sifatida self ni qabul qilishi kerak

def add_item(self, item_name, quantity, price):

Ning o'rniga

def add_item(item_name, quantity, price):

O'tkazilgan "4 argument" yopiq tarzda self , shuning uchun argumentlar soni siz kutganingizdan yuqori.

2
qo'shib qo'ydi
Rahmat sizga yaxshi, bu yordam xatolarni bartaraf etadi, lekin yana birining kelishi ................... test natijasiga ko'ra, javob kodini qaytarish: THERE Sizning kodingizdagi xato/hodisa Natijalar: Iltimos yo'riqnomani qayta o'qib chiqing va amalga oshirilmagan xususiyatlar uchun kodingizni tekshiring. Tasdiqlashdan oldin ularning hammasini bajarganingizdan ishonch hosil qiling. Yig'ma izining tegishli qismi: KeyError ("mango",),
qo'shib qo'ydi muallif delino, manba

Sinf usullari, masalan, birinchi argument sifatida self ni qabul qilishi kerak

def add_item(self, item_name, quantity, price):

Ning o'rniga

def add_item(item_name, quantity, price):

O'tkazilgan "4 argument" yopiq tarzda self , shuning uchun argumentlar soni siz kutganingizdan yuqori.

2
qo'shib qo'ydi
Rahmat sizga yaxshi, bu yordam xatolarni bartaraf etadi, lekin yana birining kelishi ................... test natijasiga ko'ra, javob kodini qaytarish: THERE Sizning kodingizdagi xato/hodisa Natijalar: Iltimos yo'riqnomani qayta o'qib chiqing va amalga oshirilmagan xususiyatlar uchun kodingizni tekshiring. Tasdiqlashdan oldin ularning hammasini bajarganingizdan ishonch hosil qiling. Yig'ma izining tegishli qismi: KeyError ("mango",),
qo'shib qo'ydi muallif delino, manba

Sinf usullari, masalan, birinchi argument sifatida self ni qabul qilishi kerak

def add_item(self, item_name, quantity, price):

Ning o'rniga

def add_item(item_name, quantity, price):

O'tkazilgan "4 argument" yopiq tarzda self , shuning uchun argumentlar soni siz kutganingizdan yuqori.

2
qo'shib qo'ydi
Rahmat sizga yaxshi, bu yordam xatolarni bartaraf etadi, lekin yana birining kelishi ................... test natijasiga ko'ra, javob kodini qaytarish: THERE Sizning kodingizdagi xato/hodisa Natijalar: Iltimos yo'riqnomani qayta o'qib chiqing va amalga oshirilmagan xususiyatlar uchun kodingizni tekshiring. Tasdiqlashdan oldin ularning hammasini bajarganingizdan ishonch hosil qiling. Yig'ma izining tegishli qismi: KeyError ("mango",),
qo'shib qo'ydi muallif delino, manba

Buni ko'ring, u yaxshi ishlaydi:

class ShoppingCart(object):
    def __init__(self):
        self.total = 0
        self.items = {}

    def add_item(self, item_name, quantity, price):
        self.total += quantity * price
        if type(item_name) == str and quantity > 0:
            self.items.update({item_name: quantity})

    def remove_item(self, item_name, quantity, price):
        if quantity >= self.items[item_name] and quantity >= 1:
            items_cost = price * self.items[item_name]
            self.total -= items_cost
            del self.items[item_name]
        else:
            self.total -= quantity * price
            self.items[item_name] -= quantity

    def checkout(self, cash_paid):
        balance = 0
        if cash_paid < self.total:
            return "Cash paid not enough"
        balance = cash_paid - self.total
        return balance

class Shop(ShoppingCart):
    def __init__(self):
        self.quantity = 100

    def remove_item(self):
        self.quantity -= 1
2
qo'shib qo'ydi

Buni ko'ring, u yaxshi ishlaydi:

class ShoppingCart(object):
    def __init__(self):
        self.total = 0
        self.items = {}

    def add_item(self, item_name, quantity, price):
        self.total += quantity * price
        if type(item_name) == str and quantity > 0:
            self.items.update({item_name: quantity})

    def remove_item(self, item_name, quantity, price):
        if quantity >= self.items[item_name] and quantity >= 1:
            items_cost = price * self.items[item_name]
            self.total -= items_cost
            del self.items[item_name]
        else:
            self.total -= quantity * price
            self.items[item_name] -= quantity

    def checkout(self, cash_paid):
        balance = 0
        if cash_paid < self.total:
            return "Cash paid not enough"
        balance = cash_paid - self.total
        return balance

class Shop(ShoppingCart):
    def __init__(self):
        self.quantity = 100

    def remove_item(self):
        self.quantity -= 1
2
qo'shib qo'ydi

Buni ko'ring, u yaxshi ishlaydi:

class ShoppingCart(object):
    def __init__(self):
        self.total = 0
        self.items = {}

    def add_item(self, item_name, quantity, price):
        self.total += quantity * price
        if type(item_name) == str and quantity > 0:
            self.items.update({item_name: quantity})

    def remove_item(self, item_name, quantity, price):
        if quantity >= self.items[item_name] and quantity >= 1:
            items_cost = price * self.items[item_name]
            self.total -= items_cost
            del self.items[item_name]
        else:
            self.total -= quantity * price
            self.items[item_name] -= quantity

    def checkout(self, cash_paid):
        balance = 0
        if cash_paid < self.total:
            return "Cash paid not enough"
        balance = cash_paid - self.total
        return balance

class Shop(ShoppingCart):
    def __init__(self):
        self.quantity = 100

    def remove_item(self):
        self.quantity -= 1
2
qo'shib qo'ydi
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming