@dert2313

Почему не работает функция?

def print_shopping_list(dish1 , dish2):
    ready_list = set(dish1.keys()).union(set(dish2.keys()))
    for dish in ready_list:
        if dish in (dish1 and dish2):
            a = dish1[dish] + dish2[dish]    
            print(dish + ': ' + str(a))
        elif dish in dish1:
            print(dish + ': ' + str(dish1[dish]))
        else:
            print(dish + ': ' + str(dish2[dish]))
    
pizza = {'мука, кг': 1,
         'помидоры, кг': 1.5,
         'шампиньоны, кг': 1.5,
         'сыр, кг': 0.8,
         'оливковое масло, л': 0.1,
         'дрожжи, г': 50}
salad = {'огурцы, кг': 1,
         'перцы, кг': 1,
         'помидоры, кг': 1.5,
         'оливковое масло, л': 0.1,
         'листья салата, кг': 0.4}

print_shopping_list(pizza, salad)

Ошибка:
Traceback (most recent call last):
File "main.py", line 27, in
print_shopping_list(pizza, salad)
File "main.py", line 8, in print_shopping_list
a = (dish1[dish]) + (dish2[dish])
KeyError: 'листья салата, кг'
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
@bacon
1. И где в pizza ключ 'листья салата, кг' ? Вам про это явно пишут.
2. Домашнее задание, разобраться как это на самом деле работает dish in (dish1 and dish2)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы