![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 31
|
![]()
Здравствуйте, помогите пожалуйста разобраться в коде не проходит тесты.
Сотрудники отдела продаж придумали новый тип промокода и хотят, чтобы вы его добавили. Идея его заключается в том, что он распространяется только на определенные товары в корзине. Для этого вам нужно доработать дата-класс Promo, чтобы он мог принимать список товаров, на который будет распространяться промокод. Если список товаров не передать при создании, то данный промокод применяется ко всей корзине целиком. Также необходимо доработать метод add_product в классе Cart. Необходимо добавить возможность передавать в него количество товара, которое добавляется в корзину. Например, строка cart.add_product(product1, 5) говорит о том, что нужно добавить в корзину 5 единиц товара product1. Если не передавать количество cart.add_product(product1) то нужно считать, что добавили одну единицу товара. Тест программы. Sample Input 1: book = Product('Книга', 100.0) usb = Product('Флешка', 50.0) pen = Product('Ручка', 10.0) ACTIVE_PROMO = [ Promo('new', 20, [pen]), Promo('all_goods', 30), ] cart = Cart() cart.add_product(book, 10) cart.add_product(pen) print(cart.get_total()) # Применение промокода в 20% на ручку cart.apply_promo('new') print(cart.get_total()) Sample Output 1: 1010.0 Промокод new успешно применился 1008.0 Sample Input 2: book = Product('Книга', 100.0) usb = Product('Флешка', 50.0) pen = Product('Ручка', 10.0) ACTIVE_PROMO = [ Promo('new', 20, [pen]), Promo('all_goods', 30), Promo('only_book', 40, [book]), ] cart = Cart() cart.add_product(book, 10) cart.add_product(pen) print(cart.get_total()) # Применение промокода в 40% на книгу cart.apply_promo('only_book') print(cart.get_total()) Sample Output 2: 1010.0 Промокод only_book успешно применился 610.0 Sample Input 3: book = Product('Книга', 100.0) usb = Product('Флешка', 50.0) pen = Product('Ручка', 10.0) ACTIVE_PROMO = [ Promo('new', 20, [pen]), Promo('all_goods', 30), Promo('only_book', 40, [book]), ] cart = Cart() cart.add_product(book, 10) cart.add_product(pen) cart.add_product(usb, 5) print(cart.get_total()) # Применение промокода в 30% на все cart.apply_promo('all_goods') print(cart.get_total()) Sample Output 3: 1260.0 Промокод all_goods успешно применился 882.0 Код:
|
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
На первый взгляд не вижу проблем. А есть еще какие-нибудь требования к методу apply_promo? В текущем виде он печатает сообщение об успешном применении, если нашел промокод, но всегда возвращает результат-сообщение, будто не нашел промокод.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 31
|
![]()
Здравствуйте, дело в 5 тесте, что не так не понятно какая то не точность.
book = Product('Книга', 100.0) usb = Product('Флешка', 50.0) pen = Product('Ручка', 10.0) ACTIVE_PROMO = [ Promo('new', 20, [pen]), Promo('all_goods', 30), Promo('sale', 50, [book, usb]), ] cart = Cart() cart.add_product(book, 10) cart.add_product(pen) cart.add_product(book, 5) cart.add_product(usb, 5) cart.add_product(usb, 15) cart.add_product(pen, 2) print(cart.get_total()) # Применение промокода в 50% на книги и флешки cart.apply_promo('sale') print(cart.get_total()) |
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Цена корзины до и после применения промокода вроде верна. Может быть, нужно складывать количество одного товара в корзине, а не делать несколько позиций, т.е. чтобы в корзине в последнем примере было [(book, 15), (pen, 3), (usb, 20)] после добавления всех товаров.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 31
|
![]()
Благодарю за помощь!!!!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование на Python | Nicodim | Помощь студентам | 5 | 05.11.2024 13:18 |
Программирование на Python Задача на программирование покрытие отрезками | Nicodim | Помощь студентам | 2 | 29.12.2023 21:19 |
Программирование на Python | fyz abkbvjyjdf | Помощь студентам | 11 | 14.12.2022 19:42 |
Программирование на python | Семен_13 | Python | 7 | 17.10.2022 17:59 |
Программирование Python | Белка и Стрелка | Помощь студентам | 1 | 29.05.2017 23:53 |