← Все вопросы

NameError: name '...' is not defined — почему?

Задан 21 месяц назад871 просмотров3 ответа
11

Питон пишет NameError: name 'summ' is not defined, хотя переменная вроде есть. В чём дело?

3 ответа

15
✓ Принятый ответ — помог автору

В 90% случаев — опечатка в имени.

Хайсер Аблаев точно, объявил sum, а вызвал summ 🤦 · 21 месяц назад
8

NameError — питон дошёл до имени, которого не знает. Причины по частоте:

  1. Опечатка (sum vs summ, разный регистр — Data и data это разные имена).
  2. Используешь переменную ДО того, как присвоил ей значение.
  3. Забыл импорт (math.sqrt без import math даст NameError: name 'math').
  4. Переменная объявлена внутри функции, а используешь снаружи — у неё своя область видимости.

Проверь, что имя написано идентично и что строка с присваиванием выполняется раньше, чем строка с использованием.

5

Строка, где переменная задаётся, выполняется позже, чем та, где ты её читаешь. Или вообще в другой ветке if, которая не сработала.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект