Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python, помогите пожалуйста, выдает ошибку(

VALERI Ученик (135), на голосовании 2 месяца назад
Дан список блюд и необходимых ингредиентов к ним. Напиши программу, которая будет определять что можно приготовить с имеющимися ингредиентами. В начале программа запрашивает имеющиеся ингредиенты на одной строке через пробел и количество блюд на следующей строке. Затем вводятся название блюда и на другой ингредиенты этого блюда через пробел и так столько раз, сколько блюд. Программа должна вывести список названий блюд которые можно приготовить в том же порядке, в котором они были представлены.

Входные данные
Вводятся строки.

Выходные данные
Выводится список.

Пример ввода:
хлеб колбаса масло вода чай картошка
3
бутерброд с колбасой
хлеб колбаса
горячий чай
вода чай
бутерброд с маслом
хлеб масло

Пример вывода:
['бутерброд с колбасой', 'горячий чай']

Примечание:
Для вывода текста пользуйся только командой print(), подсказки внутри команды input() не используй!
Голосование за лучший ответ
Avis Оракул (90193) 3 месяца назад
Для начала там написано "подсказки внутри команды input() не используй!". Строка 15 это правило нарушает.
Потом, в примере вывода представлен сразу список: [], а две ваши последние строки выводят построчно.
Этого уже достаточно чтобы система проверки отклонила решение даже если решение правильное..

А насчёт правильное.. я что-то не вижу, чтобы где-то была учтена трата ингредиентов. Из available ingredients надо удалять потраченное. Именно так работает вывод в примере: бутерброд с маслом не попал в вывод, потому что хлеб для него был потрачен на бутерброд с колбасой, который был списке блюд раньше.

И аще переписывать это всё с скриншота нет никакого желания. Проще написать с нуля и попроще:
 ingr = input().split() 
num = int(input())
dishes = {input():input().split() for _ in range(num)}

can_cook = []

for k,v in dishes.items():
if set(v).issubset(ingr):
for i in v:
ingr.remove(i)
can_cook += [k]

print(can_cook)
Похожие вопросы