Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

NameError: что это и как избежать

NameError значит, что Python встретил имя, которого не знает: переменную или команду, которую вы не создали или написали с опечаткой.

Что означает

Сообщение «name 'x' is not defined» говорит: вы используете имя x, но Python его не находит. Либо переменная не создана до использования, либо в имени опечатка, либо оно написано в другом регистре.

print(itog)   # NameError: name 'itog' is not defined
itog = 5
print(itog)   # теперь всё работает

Частые причины

Использовали переменную раньше, чем присвоили ей значение. Опечатались в имени (score и scoree — разные). Перепутали регистр (Name и name — разные). Забыли кавычки у текста, и слово приняли за имя переменной.

Как исправить

Прочитайте, какое имя в сообщении, и проверьте: создано ли оно ВЫШЕ по коду, точно ли совпадает написание и регистр. Если это текст — оберните в кавычки. Редактор с подсветкой помогает: незнакомые имена он не подсвечивает как переменные.

Частые вопросы

Почему переменная «не видна»? Возможно, она создана ниже по коду или внутри другой функции.

Чем NameError отличается от SyntaxError? SyntaxError — код написан неправильно; NameError — код верный, но имя неизвестно.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание