- Python NameError: Имя ‘xxx’ не определено – как исправить эту глупую ошибку?
- Проблема
- Желаемый вывод
- Фон
- Отсутствующее определение переменной
- Имя переменной с ошибками
- Отсутствующие функции определения
- Название функции с ошибками
- Неправильный объем
- Unquoted String in Print ()
- Заключение
- Финктерская академия
- использованная литература
- Читайте ещё по теме:
- Как исправить ошибку NameError в Python
- Что такое NameError в Python?
- Как исправить «NameError: Name Is Not Defined» в Python
- Пример №1. Имя переменной не определено
- Пример №2. Имя функции не определено
- Пример №3. Использование модуля без его импорта
- Заключение
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. Также мы показали, как можно исправить эти ошибки.
Надеемся, данная статья была вам полезна! Успехов в написании кода!