|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.12.2024, 19:32 | #1 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 27
|
Программирование на Python методы и свойства(property)
Здравствуйте, помогите пожалуйста разобраться с задачей не проходит тест.
Последний штрих — создание класса корзины, куда пользователь будет складывать товары. Для этого нам понадобятся ранее созданные классы User и Product Итак, создаем класс Cart, который содержит: 1.метод __init__, принимающий на вход экземпляр класса User . Его необходимо сохранить в атрибуте user . Помимо этого, метод должен создать атрибут goods — пустой словарь (лучше использовать defaultdict). Он нужен будет для хранения товаров и их количества (ключ словаря — товар, значение — количество). И еще нам понадобится создать защищенный атрибут .__total со значением 0. В нем будет храниться итоговая сумма заказа 2.метод add принимает на вход экземпляр класса Product и необязательный аргумент — количество товаров (по умолчанию 1). Метод add должен увеличить в корзине (атрибут goods) количество указанного товара на переданное значение количества и пересчитать атрибут self.__total 3.метод remove принимает на вход экземпляр класса Product и необязательный аргумент — количество товаров (по умолчанию 1). Метод remove должен уменьшить в корзине (атрибут goods) количество указанного товара на переданное значение количества и пересчитать атрибут self.__total. Обратите внимание на то, что количество товара в корзине не может стать отрицательным, как и итоговая сумма; 4.свойство геттер total , которое возвращает значение self.__total; 5.метод order должен использовать метод payment из класса User и передать в него итоговую сумму корзины. В случае, если средств пользователю хватило, вывести сообщение «Заказ оплачен», в противном случае - «Проблема с оплатой»; 6.метод print_check , печатающий на экран чек. Он должен начинаться со строки ---Your check--- Затем выводится состав корзины в алфавитном порядке по названию товара в виде {Имя товара} {Цена товара} {Количество товара} {Сумма} И заканчивается чек строкой ---Total: {self.total}--- Пример использования класса Cart billy = User('billy@rambler.ru') emon = Product('lemon', 20) carrot = Product('carrot', 30) cart_billy = Cart(billy) print(cart_billy.user) # Пользователь billy@rambler.ru, баланс - 0 cart_billy.add(lemon, 2) cart_billy.add(carrot) cart_billy.print_check() ''' Печатает текст ниже ---Your check--- carrot 30 1 30 lemon 20 2 40 ---Total: 70---''' cart_billy.add(lemon, 3) cart_billy.print_check() ''' Печатает текст ниже ---Your check--- carrot 30 1 30 lemon 20 5 100 ---Total: 130---''' cart_billy.remove(lemon, 6) cart_billy.print_check() ''' Печатает текст ниже ---Your check--- carrot 30 1 30 ---Total: 30---''' print(cart_billy.total) # 30 cart_billy.add(lemon, 5) cart_billy.print_check() ''' Печатает текст ниже ---Your check--- carrot 30 1 30 lemon 20 5 100 ---Total: 130---''' cart_billy.order() ''' Печатает текст ниже Не хватает средств на балансе. Пополните счет Проблема с оплатой''' cart_billy.user.deposit(150) cart_billy.order() # Заказ оплачен print(cart_billy.user.balance) # 20 Тест Failed. You answer was: ---Your check--- carrot 30 1 30 lemon 20 0 0 zara 1530 5 7650 ---Total: 7680-- ---Your check--- carrot 30 1 30 lemon 20 3 60 zara 1530 5 7650 ---Total: 7740-- ---Your check--- carrot 30 1 30 lemon 20 0 0 zara 1530 5 7650 ---Total: 7680-- 7680 ---Your check--- carrot 30 1 30 lemon 20 5 100 zara 1530 5 7650 ---Total: 7780-- Не хватает средств на балансе. Пополните счет Проблема с оплатой Заказ оплачен 370 Correct answer was: ---Your check--- carrot 30 1 30 zara 1530 5 7650 ---Total: 7680--- ---Your check--- carrot 30 1 30 lemon 20 3 60 zara 1530 5 7650 ---Total: 7740--- ---Your check--- carrot 30 1 30 zara 1530 5 7650 ---Total: 7680--- 7680 ---Your check--- carrot 30 1 30 lemon 20 5 100 zara 1530 5 7650 ---Total: 7780--- Не хватает средств на балансе. Пополните счет Проблема с оплатой Заказ оплачен 370 Код:
Последний раз редактировалось Nicodim; 02.12.2024 в 19:52. |
02.12.2024, 20:10 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,394
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
02.12.2024, 21:48 | #3 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 27
|
Благодарю за помощь!!!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование на Python Магические методы в классах | Nicodim | Помощь студентам | 2 | 10.09.2023 20:25 |
потоки(TThread) и свойства(property), не все понятно | Pcrepair | Общие вопросы Delphi | 5 | 04.06.2018 21:21 |
Notice: Trying to get property of non-object. для property of static property | Jakethefish | PHP | 8 | 16.08.2011 16:09 |
свойства и методы | SkrudjMakdak | Общие вопросы Delphi | 1 | 13.09.2010 20:25 |
Свойства и методы в VBA | NitriNKa | Помощь студентам | 0 | 07.05.2009 14:17 |