Python переменная is not defined

Python NameError: Имя ‘xxx’ не определено – как исправить эту глупую ошибку?

Переводчик Python бросает исключение NameError, если он сталкивается с неопределенной переменной или именем функции. Чтобы исправить его, вы должны выяснить, почему переменная не определена – – наиболее частые ошибки (1) для использования переменной или имени функции в коде, прежде чем он был определен, или (2), чтобы пропустить имя … NameError Python: Имя ‘xxx’ не определено – как исправить эту глупую ошибку? Подробнее “

Автор оригинала: Girish Rao.

Переводчик Python бросает NameError Исключение, если он встречает неопределенную переменную или имя функции. Чтобы исправить это, вы должны выяснить, почему переменная не определена – самые частые ошибки (1) для использования переменной или имени функции в коде до Это было определено или (2), чтобы пропустить имя в определении или использовании.

Посмотрите на минимальный пример в нашем интерактивном коде Shell:

Упражнение : Определите переменную quote_variable. Прежде чем использовать его и исправить ошибку!

Примечание : Все объяснения и решения, приведенные ниже, были проверены с использованием Python 3.8.5.

Проблема

Когда человек начинает писать код Python, они столкнутся с NameError исключение. Переводчик Python бросает это исключение для состояния ошибки. Опытные кодеры Python, даже Легенды Python, как Guido (Я полагаю), вдаю в эти ошибки, время от времени. В его простейшей форме ошибка выглядит как что-то похожее на следующее:

>>> print(some_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'some_variable' is not defined >>> 

Желаемый вывод

Эта статья направлена на помощь читателю понять некоторые из наиболее распространенных причин этой ошибки.

>>> print(some_variable) hello world >>>

Желаемый выход, предполагает переменную quote_variable , указывает на строку » Здравствуйте, мир » Отказ Другими словами, желаемый вывод будет бесплатным запуском кода Python Reader Python.

Фон

Python – это интерпретированный язык. Это означает, что он интерпретирует любой код Python, строка по линии, с начала кода до конца. Выполнение обычно останавливается при первой ошибке, который столкнулся с переводчиком Python. Сообщение об ошибке обычно печатает полезную информацию о проблеме. В большинстве случаев читатель может отладки, вывести и находить ошибочный синтаксис и исправить его. Этот блог попытается описать одну такую общую проблему, называемую NameError Отказ

Отсутствующее определение переменной

Одна общая причина NameError Исключение – это отсутствующее определение переменной. Как уже упоминалось ранее, Python является интерпретированным языком. Это означает, что читатель должен определять переменные перед использованием их. Рассмотрим следующий код. Читатель стремится попробовать какой-то основной код Python Real быстро. Таким образом, они уволяют переводчик Python, чтобы попробовать их свежие навыки Python.

>>> print(some_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'some_variable' is not defined >>> 

Ой . Читатель узнает, что они не определены quote_variable , прежде чем они использовали это! Исправьте эту проблему, как показано ниже. Определить quote_variable перед использованием этого!

>>> some_variable = 'Hello World' >>> print(some_variable) Hello World >>>

Имя переменной с ошибками

Имена переменной с ошибками ошибок могут быть ошибочными аналогичным образом. Рассмотрим следующий пример код.

>>> som_variable = 'Hello World' >>> print(some_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'some_variable' is not defined >>> 

Примечание : som_variable. не то же самое, что quote_variable. (то есть отсутствует ‘E’ )

Отсутствующие функции определения

Еще одна общая причина NameError Исключение представляет собой недостающее определение функции. Как и переменные определения, читатель должен определить любую функцию, прежде чем использовать его. Рассмотрим следующий код.

>>> some_other_string = 'Hello World' >>> some_function(some_other_string) Traceback (most recent call last): File "", line 1, in NameError: name 'some_function' is not defined >>> 

Опять же, функция «Некоторые_функция» не определен до его использования. Исправьте эту проблему, как показано ниже. Определить «Некоторые_функция» перед использованием этого.

>>> def some_function(some_string): . print(some_string) . >>> some_other_string = 'Hello World' >>> some_function(some_other_string) Hello World >>>

Название функции с ошибками

Имена функций с ошибками ошибок могут быть ошибочными похожими. Рассмотрим следующий пример код.

>>> def som_function(some_string): . print(some_string) . >>> some_other_string = 'Hello World' >>> some_function(some_other_string) Traceback (most recent call last): File "", line 1, in NameError: name 'some_function' is not defined >>> 

Примечание : ‘som_function’ не то же самое, что «Некоторые_функция» (то есть отсутствует ‘E’ )

Неправильный объем

Еще одна общая причина NameError Исключение – это использование переменной в неправильном объеме. Рассмотрим следующий пример.

>>> ## Define the function some_function() >>> def some_function(): . a_local_variable = 'I am Local…' . print("Printing a Local variable from within a function definition: " + a_local_variable) . >>> ## Call some_function() >>> some_function() Printing a Local variable from within a function definition: I am Local. >>> >>> ## Try to print "a_local_variable" from outside the function definition >>> print("Attempting to print the variable from outside some_function(): " + a_local_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'a_local_variable' is not defined >>> 

NameError Исключение произошло потому, что a_local_variable вызвано из-за внешнего объема функций. Один из способов исправить это, определяя a_local_variable в качестве глобальной переменной вместо этого. Рассмотрим следующий пример.

>>> ## Define a Global Variable >>> a_global_variable = 'I am global…' >>> >>> ## Define the function some_function() >>> def some_function(): . print("Printing the Global variable from within a function definition: " + a_global_variable) . >>> ## Call some_function() >>> some_function() Printing the Global variable from within a function definition: I am global. >>> >>> ## Try to print "a_global_variable" from outside the function definition >>> print("Attempting to print the Global variable from outside some_function(): " + a_global_variable) Attempting to print the Global variable from outside some_function(): I am global… >>>

Unquoted String in Print ()

Забывая цитировать строки в Печать () Заявление может вызвать NameError исключение. Это не происходит часто, но хорошо знать, что это может произойти. Читатель, скорее всего, увидит SyntaxError а не NameError Отказ Рассмотрим следующие примеры …

>>> print(Hello) Traceback (most recent call last): File "", line 1, in NameError: name 'Hello' is not defined >>> print(Hello World) File "", line 1 print(Hello World) ^ SyntaxError: invalid syntax >>> 

В приведенных выше примерах вышеупомянутые строки вызывают ошибки. NameError в одном случае и SyntaxError в другой.

В этом случае исправление просто. Приложите струны в цитатах.

>>> print('Hello') Hello >>> print('Hello World') Hello World

Заключение

Такие ошибки произойдут в кодировании читателя. Важно учиться у него и двигаться дальше. Со временем читатель станет лучше в кодировании, поскольку они включают хорошие привычки кодирования. Такие ошибки происходят меньше и меньше, поскольку читатель становится более опытным.

Финктерская академия

Этот блог был доставлен вам Girish , студент Финктерская академия . Вы можете найти его Профиль намного здесь Отказ

использованная литература

Все исследования для этой статьи в блоге было сделано с использованием Python Documents , Поисковая система Google и общая база знаний Финктерская академия и Переполнение стека Общины. Концепции и идеи были также исследованы из Бостонский университет и Карьера карма общины.

Читайте ещё по теме:

Источник

Как исправить ошибку NameError в Python

Первый шаг в исправлении ошибок при написании кода — понять, что именно пошло не так. И хотя некоторые сообщения об ошибках могут показаться запутанными, большинство из них помогут вам понять, что же не работает в вашей программе. В этой статье мы поговорим о том, как исправить ошибку NameError в Python. Мы рассмотрим несколько примеров кода, показывающих, как и почему возникает эта ошибка, и покажем, как ее исправить.

Что такое NameError в Python?

В Python ошибка NameError возникает, когда вы пытаетесь использовать переменную, функцию или модуль, которые не существуют, или использовать их недопустимым образом.

Некоторые из распространенных причин, вызывающих эту ошибку:

  • Использование имени переменной или функции, которое еще не определено
  • Неправильное написание имени переменной/функции при её вызове
  • Использование модуля в Python без импорта этого модуля и т. д.

Как исправить «NameError: Name Is Not Defined» в Python

В этом разделе мы рассмотрим, как исправить ошибку NameError: Name is Not Defined в Python.

Мы начнем с блоков кода, вызывающих ошибку, а затем посмотрим, как их исправить.

Пример №1. Имя переменной не определено

name = "John" print(age) # NameError: name 'age' is not defined

В приведенном выше коде мы определили переменную name , но далее попытались вывести переменную age , которая ещё не была определена.

Мы получили сообщение об ошибке: NameError: name ‘age’ is not defined . Это означает, что переменная age не существует, мы её не задали.

Чтобы исправить это, мы можем создать переменную, и наш код будет работать нормально. К примеру, это можно сделать следующим образом:

name = "John" age = 12 print(age) # 12

Теперь значение переменной age выводится без проблем.

Точно так же эта ошибка может возникнуть, если мы неправильно напишем имя нашей переменной. Например, сделаем так:

name = "John" print(nam) # NameError: name 'nam' is not defined

В коде выше мы написали nam вместо name . Чтобы исправить подобную ошибку, вам просто нужно правильно написать имя вашей переменной.

Пример №2. Имя функции не определено

def sayHello(): print("Hello World!") sayHelloo() # NameError: name 'sayHelloo' is not defined

В приведенном выше примере мы добавили лишнюю букву o при вызове функции — sayHelloo() вместо sayHello() . Это просто опечатка, однако она вызовет ошибку, потому что функции с таким именем не существует.

Итак, мы получили ошибку: NameError: name ‘sayHelloo’ is not defined . Подобные орфографические ошибки очень легко пропустить. Сообщение об ошибке обычно помогает исправить это.

Вот правильный способ вызова данной функции:

def sayHello(): print("Hello World!") sayHello() # Hello World!

Как мы видели в предыдущем разделе, вызов переменной, которая еще не определена, вызывает ошибку. То же самое относится и к функциям.

К примеру, это может выглядеть так:

def sayHello(): print("Hello World!") sayHello() # Hello World! addTWoNumbers() # NameError: name 'addTWoNumbers' is not defined

В приведенном выше коде мы вызвали функцию addTWoNumbers() , которая еще не была определена в программе. Чтобы исправить это, вы можете создать функцию, если она вам нужна, или просто избавиться от нее.

Обратите внимание, что вызов функции перед ее созданием приведет к той же ошибке. То есть такой код также выдаст вам ошибку:

sayHello() def sayHello(): print("Hello World!") # NameError: name 'sayHello' is not defined

Поэтому вы всегда должны определять свои функции перед их вызовом.

Пример №3. Использование модуля без его импорта

x = 5.5 print(math.ceil(x)) # NameError: name 'math' is not defined

В приведенном выше примере мы используем метод математической библиотеки Python math.ceil() . Однако до этого мы не импортировали модуль math .

В результате возникает следующая ошибка: NameError: name ‘math’ is not defined . Это произошло потому, что интерпретатор не распознал ключевое слово math .

Таким образом, если мы хотим использовать функции библиотеки math в Python, мы должны сначала импортировать соответствующий модуль.

Вот так будет выглядеть исправленный код:

import math x = 5.5 print(math.ceil(x)) # 6

В первой строке кода мы импортировали математический модуль math . Теперь, когда вы запустите приведенный выше код, вы получите результат 6. То же самое относится и ко всем остальным библиотекам. Сначала нужно импортировать библиотеку с помощью ключевого слова import , а потом уже можно использовать весь функционал этой библиотеки. Подробнее про импорт модулей можно узнать в статье «Как импортировать в Python?»

Заключение

В этой статье мы поговорили о том, как исправить ошибку NameError в Python.

Мы выяснили, что собой представляет NameError. Затем мы разобрали несколько примеров, которые могли вызвать ошибку NameError при работе с переменными, функциями и модулями в Python. Также мы показали, как можно исправить эти ошибки.

Надеемся, данная статья была вам полезна! Успехов в написании кода!

Источник

Читайте также:  Php post response json
Оцените статью