Справочник · ошибки 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 «Первая программа».

Другие ошибки