Код: Выделить всё
print(f'That drink costs {MENU["espresso"['cost']]}.')
^
Строка кода, которая выдает эту ошибку, выглядит следующим образом:
Код: Выделить всё
print(f'That drink costs {MENU["espresso"['cost']]}.')
Мне казалось, что я понял основную проблему; pycharm/python по какой-то причине не создан для понимания того, что одинарные и двойные кавычки внутри фигурных скобок f-строки на самом деле не являются концом оператора печати, поэтому он завершит оператор печати и увидит остальную часть строки как беспорядочные символы и выдавать по ним синтаксическую ошибку.
Однако, если бы это было так, он должен был бы видеть ']' как несоответствующий, а не '[', как я ожидал, что он подумает находится внутри печати кавычки и поэтому не требуют сопоставления. Но он возражает против скобок, которые должны рассматриваться как внутри одинарных кавычек и нормально печатать в любом случае.
Я также вижу, что пытаюсь использовать одинарные кавычки для ключа «стоимость» внутри одинарных кавычек печати. оператор, но мне приходится использовать двойные кавычки для ключа «эспрессо» первого словаря. Мне не известен какой-либо третий способ показать, что я указываю ключ словаря. Невозможно ли ссылаться на значение внутри вложенного словаря в строке f?
Подробнее здесь: https://stackoverflow.com/questions/792 ... is-matched