drink = input("Would you like to buy a espresso, latte or cappuccino?:\n").lower()
    if drink == "espresso":
        print(MENU["cost"])

Я получаю эту ошибку, когда пытаюсь что-то ввести. Кто-нибудь может помочь?

Файл "C:\Users\joeca\Udemy\Games\Day10\Coffee Machine.py", строка 25, при покупке print(MENU["cost"]) KeyError: 'cost'

-1
joeca 27 Сен 2022 в 21:20
 – 
Skully
27 Сен 2022 в 21:23

2 ответа

Это MENU["cost"] означает, что MENU является словарем, и вы пытаетесь получить значение ключа 'cost' из этого словаря
ошибка показывает, что в словаре MENU нет такой пары ключ/значение с ключом 'cost'

0
Dmitriy Neledva 27 Сен 2022 в 21:26
Это потому, что это внутри аргумента. например, МЕНЮ = { "эспрессо": { "ингредиенты": { "вода": 50, "кофе": 18, }, "стоимость": 1,5, }, поэтому они находятся в отдельных строках друг к другу и имеют отступ, а не знаю как вытащить их из тиоса
 – 
joeca
27 Сен 2022 в 21:45
Итак, вы хотите MENU[drink]['cost']?
 – 
Matthias
27 Сен 2022 в 21:48
О, я не знал, что могу это сделать. Благодарю вас!
 – 
joeca
27 Сен 2022 в 21:53

В общем, вы бы сделали это так:

from othermodule import othervariable

drink = input("...").lower()
if drink == "espresso":
    print(MENU[othervariable])
-1
John Gordon 27 Сен 2022 в 21:29