Почему выходит ошибка и как ее исправить?

Начал ходить на курсы по Python 3.8
Нам задали дз, но я не понимаю почему вылезает такая ошибка:
Traceback (most recent call last):
  File "H:\program\Код\dz.py", line 1, in <module>
    x = {a:'Эй',b:'Би',c:'Си',d:'Ди',e:'И',f:'Эф',g:'Джи',h:'Эйч',i:'Ай',j:'Джэй',k:'Кей',l:'Эль',m:'Эм',n:'Эн',o:'Оу',p:'Пи',q:'Кью',r:'Ар',s:'Эс',t:'Ти',u:'Ю',v:'Ви',w:'Дабл-ю',x:'Экс',y:'Вай',z:'Зед'}
NameError: name 'a' is not defined


Вот сам код:
x ={a:'Эй',b:'Би',c:'Си',d:'Ди',e:'И',f:'Эф',g:'Джи',h:'Эйч',i:'Ай',j:'Джэй',k:'Кей',l:'Эль',m:'Эм',n:'Эн',o:'Оу',p:'Пи',q:'Кью',r:'Ар',s:'Эс',t:'Ти',u:'Ю',v:'Ви',w:'Дабл-ю',x:'Экс',y:'Вай',z:'Зед'}
n = input('Введите букву английского алфавита: ')
print(x[n])


Помогите, пожалуйста, выявить проблему
  • Вопрос задан
  • 53 просмотра
Решения вопроса 2
milssky
@milssky
Координатор племени фиолетовых обезьянок
Проблема в том, что ключи вашего словаря сейчас являться переменными. А должны быть строками.
'a':'эй' и так далее
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Потому что надо так:
x ={'a':'Эй', 'b':'Би', 'c':'Си', 'd':'Ди', ...
У вас ключи определены как переменные. А надо определить как символы, судя по необходимому результату.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы