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 — код верный, но имя неизвестно.
Начать игру бесплатно