Бариста - Python
Помогите с решением задачи:
Надо написать функцию choose_coffee(preference1, preference2,..., preferenceN), которая возвращает напиток, который можно приготовить из имеющихся продуктов (ingredients). На вход функция принимает заранее неизвестное количество предпочтений посетителя. Все напитки перечислены в порядке убывания предпочтений и гарантированно не повторяются. Бариста готовит наиболее предпочитаемый напиток из доступных.
Код:
ingredient = {'Эспрессо': [1, 0, 0], 'Капучино': [1, 3, 0], 'Маккиато': [2, 1, 0] \
'Кофе по-венски': [1, 0, 2], 'Латте Маккиато': [1, 2, 1], 'Кон Панна': [1, 0, 1]}
def choose_coffee(preferences):
for i in preferences:
if ingredient[i][0] <= ingredients[0] and ingredient[i][1] <= ingredients[1] \
and ingredient[i][2] <= ingredients[2]:
ingredients[0] -= ingredient[i][0]
ingredients[1] -= ingredient[i][1]
ingredients[2] -= ingredient[i][2]
return i
return 'К сожалению, не можем предложить Вам напиток'
ingredients = []
./solution.py:1:83: E502 обратный слеш избыточен в скобках
./solution.py:2:30: E999 SyntaxError: неверный синтаксис
Код не соответствует стандарту PEP8
Ответы (1 шт):
В словаре
ingredients = {'Эспрессо': [1, 0, 0], 'Капучино': [1, 3, 0], 'Маккиато': [2, 1, 0] \
'Кофе по-венски': [1, 0, 2], 'Латте Маккиато': [1, 2, 1], 'Кон Панна': [1, 0, 1]}
использован старый синтаксис разделения строки кода. Сейчас слеши внутри скобок в последовательности избыточны. Это причина первого сообщения об ошибке
Так же вы забыли добавить запятую между элементами 'Маккиато' и 'Кофе по-венски'. Слеш не разделяет элементы последовательности, а только указывает на то, что следующая строка является продолжением текущей.
Рекомендую использовать подобный синтаксис для определения полсдеовательностей и/или структур:
ingredients = {
'Эспрессо': [1, 0, 0],
'Капучино': [1, 3, 0],
'Маккиато': [2, 1, 0],
'Кофе по-венски': [1, 0, 2],
'Латте Маккиато': [1, 2, 1],
'Кон Панна': [1, 0, 1]
}