Справочник · ошибки Python
NameError
Python встретил имя, которого не знает: переменную ещё не создали, в имени опечатка или текст забыли взять в кавычки.
Python пишет ошибку в последней строке сообщения: сначала название, после двоеточия — подробности. Найди своё сообщение ниже — рядом объяснение простыми словами и что исправить.
Цвет без кавычек
NameError: name 'red' is not defined
- Что случилось
- Цвет
redнужно писать в кавычках. - Почему так бывает
- Без кавычек Python ищет команду с таким именем и не находит. Цвет — это текст.
- Как исправить
- Напиши так: color("red").
Разбираем в уроке 0.2 «Рисуем кодом».
Модуль не подключён
NameError: name 'random' is not defined
- Что случилось
- Модуль
randomне подключён. - Почему так бывает
- Прежде чем пользоваться модулем, его подключают командой import.
- Как исправить
- Добавь в начало программы строчку import
random.
Разбираем в уроке 3.6 «Случайность».
Команда в русской раскладке
зкште("Привет!")Python сообщает об ошибке
NameError: name 'зкште' is not defined
- Что случилось
- Python не знает слова
зкште. - Почему так бывает
- Команда набрана в русской раскладке.
зкште— этоprint, только русскими буквами. - Как исправить
- Переключи раскладку на английскую и напиши
print.
Разбираем в уроке 0.1 «Первая программа».
Русская буква в английском слове
NameError: name 'рrint' is not defined
- Что случилось
- В слове
рrintспряталась русская буква. - Почему так бывает
- Русские «р», «с», «о», «а», «е» выглядят как английские, но для Python это другие буквы.
- Как исправить
- Сотри слово целиком и набери
printв английской раскладке.
Разбираем в уроке 0.1 «Первая программа».
Текст без кавычек
NameError: name 'Привет' is not defined
- Что случилось
- Python не знает имени
Привет. - Почему так бывает
- Слово без кавычек Python считает именем и ищет, что за ним спрятано. Текст всегда пишут в кавычках.
- Как исправить
- Если
Привет— это текст, возьми его в кавычки: "Привет".
Разбираем в уроке 0.1 «Первая программа».
Забыли self перед точкой
class Cat:
def __init__(self, name):
self.name = name
def meow(self):
print(name + " говорит: мяу!")
Cat("Бит").meow()Python сообщает об ошибке
NameError: name 'name' is not defined
- Что случилось
- Имя
name— это атрибут объекта, а ты читаешь его без self. - Почему так бывает
- Внутри метода атрибуты объекта берут через self. Без него Python ищет обычную переменную и не находит.
- Как исправить
- Напиши self.name.
Разбираем в уроке 9.3 «Методы класса».
Переменная осталась в функции
def make():
secret = 42
make()
print(secret)Python сообщает об ошибке
NameError: name 'secret' is not defined
- Что случилось
- Переменная
secretсоздана внутри функции, а ты берёшь её снаружи. - Почему так бывает
- Переменные функции живут только внутри неё. Когда функция закончила работу, они исчезают.
- Как исправить
- Верни значение через return и положи его в переменную снаружи.
Разбираем в уроке 5.4 «Запасные значения и свои переменные».
Похоже на опечатку
NameError: name 'prnt' is not defined
- Что случилось
- Python не знает имени
prnt. - Почему так бывает
- Скорее всего, это опечатка: так бывает с каждым.
- Как исправить
- Ты, наверное, имел в виду
print. Исправь и запусти ещё раз.
Разбираем в уроке 0.1 «Первая программа».
Незнакомое имя
try:
print("Итог:", totl)
except ValueError:
print("Это не число")Python сообщает об ошибке
NameError: name 'totl' is not defined
- Что случилось
- Python не знает имени
totl. - Почему так бывает
- Имя написано с опечаткой, или переменная ещё не создана выше, или у текста забыты кавычки.
- Как исправить
- Проверь написание, порядок строчек и кавычки.
Разбираем в уроке 0.1 «Первая программа».
Другие ошибки
SyntaxErrorAttributeErrorTypeErrorIndentationErrorTabErrorValueErrorZeroDivisionErrorIndexErrorKeyErrorUnboundLocalErrorRecursionErrorFileNotFoundErrorUnsupportedOperationUnicodeDecodeErrorModuleNotFoundErrorJSONDecodeErrorEOFErrorAssertionErrorValidationErrorMissingSchemaConnectionErrorReadTimeoutHTTPErrorOperationalErrorIntegrityErrorProgrammingErrorNotImplementedError