Есть ответ 👍

Станислав — менеджер магазина «Перекрёсточек». Помогите ему среди товаров, которых осталось менее 100 штук, найти три таких, за покупку которых дают наибольшее количество бонусных баллов. Для этого разработайте функцию goods_analysis.

Функция goods_analysis принимает произвольное число параметров-товаров, каждый из которых представляет собой словарь со следующим набором ключей и значений:
ключу "название" соответствует непустая строка с наименованием товара,
по ключу "цена" записано целочисленное значение исходной цены (без учёта скидки) в рублях,
по ключу "скидка" — величина установленной на данный товар скидки в процентах (целое число),
ключ "количество" отвечает за запас товара в штуках.
Также в вашу функцию передаётся ещё один необязательный параметр — функция bonuses, принимающая товар в формате описанного выше словаря и возвращающая целое число — количество бонусных баллов, которые будут начислены за покупку этого товара. Если функция bonuses не была передана, количество бонусных баллов рассчитывается следующим образом: за каждый полный рубль, потраченный покупателем на оплату товара с учётом скидки, начисляется 1 бонусный балл.

Функция goods_analysis должна возвращать три товара — самые выгодные по начисляемым бонусным баллам среди тех, запас которых иссякает (менее 100 штук). Гарантируется, что такие товары всегда найдутся. Если ответов несколько, выведите любой.

Формат ввода
Функция должна принимать не известное заранее количество товаров заданного формата, а также необязательный именованный аргумент bonuses.
Формат вывода
Возвращать функция должна три искомых товара в произвольном порядке.
Пример 1
Ввод Вывод
p1, p2, p3 = goods_analysis(
{'название': 'Молоко Бурёнка 0,5л', 'цена': 55, 'скидка': 1, 'количество': 1000},
{'название': 'Масло подсолнечное Золотое', 'цена': 70, 'скидка': 5, 'количество': 99},
{'название': 'Ананасы кусочками 200г', 'цена': 130, 'скидка': 50, 'количество': 1},
{'название': 'Хлеб ржано-пшеничный в/с', 'цена': 24, 'скидка': 0, 'количество': 25})
print(*sorted([p1, p2, p3], key=lambda x: x['название']), sep='\n')
{'название': 'Ананасы кусочками 200г', 'цена': 130, 'скидка': 50, 'количество': 1}
{'название': 'Масло подсолнечное Золотое', 'цена': 70, 'скидка': 5, 'количество': 99}
{'название': 'Хлеб ржано-пшеничный в/с', 'цена': 24, 'скидка': 0, 'количество': 25}
Пример 2
Ввод Вывод
p1, p2, p3 = goods_analysis(
{'название': 'Шоколад Заливные луга', 'цена': 69, 'скидка': 15, 'количество': 93},
{'название': 'Шоколадное молоко 0,2л', 'цена': 24, 'скидка': 3, 'количество': 5},
{'название': 'Печень трески Берег', 'цена': 78, 'скидка': 0, 'количество': 4},
{'название': 'Колбаса Докторская ГОСТ', 'цена': 200, 'скидка': 20, 'количество': 129},
{'название': 'Сок Южный рай апельсин 2л', 'цена': 84, 'скидка': 13, 'количество': 17},
bonuses=lambda x: int(1 / (x['количество'] + 1) * 100))
print(*sorted([p1, p2, p3], key=lambda x: x['название']), sep='\n')
{'название': 'Печень трески Берег', 'цена': 78, 'скидка': 0, 'количество': 4}
{'название': 'Сок Южный рай апельсин 2л', 'цена': 84, 'скидка': 13, 'количество': 17}
{'название': 'Шоколадное молоко 0,2л', 'цена': 24, 'скидка': 3, 'количество': 5}
Пример 3
Ввод Вывод
p1, p2, p3 = goods_analysis(
{'название': 'Мармелад Машинки фруктовые', 'цена': 67, 'скидка': 2, 'количество': 93},
{'название': 'Фасоль в томате (стекло)', 'цена': 90, 'скидка': 30, 'количество': 65},
{'название': 'Масло подсолнечное Золотое', 'цена': 70, 'скидка': 5, 'количество': 99},
{'название': 'Ананасы кусочками 200г', 'цена': 130, 'скидка': 50, 'количество': 1})

print(*sorted([p1, p2, p3], key=lambda x: x['название']), sep='\n')
{'название': 'Ананасы кусочками 200г', 'цена': 130, 'скидка': 50, 'количество': 1}
{'название': 'Мармелад Машинки фруктовые', 'цена': 67, 'скидка': 2, 'количество': 93}
{'название': 'Масло подсолнечное Золотое', 'цена': 70, 'скидка': 5, 'количество': 99}
Примечания
Необходимо отправить на проверку только код самой функции, вызывающий код отправлять не следует.

PYTHON

134
382
Посмотреть ответы 1

Ответы на вопрос:


Var     a: longint;     b: string; begin write('a = '); readln(a); a: =abs(a); while a > 0 do     begin     if a mod 2 = 0 then b: ='0'+b     else b: ='1'+b;     a: =a div 2     end; writeln(b) end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS