El error “NameError: name X is not defined” es uno de los más comunes en Python, especialmente entre quienes están comenzando a programar. Ocurre cuando intentas usar una variable, función u otro identificador que no ha sido definido previamente en el código.
En esta entrada, explicaremos qué significa este error, por qué ocurre y cómo solucionarlo paso a paso. Además, veremos ejemplos prácticos y buenas prácticas para evitarlo en el futuro.
Tabla de contenidos
'NameError: name X is not defined’
?En Python, el error 'NameError: name X is not defined'
aparece cuando intentas utilizar un nombre (ya sea una variable, función o módulo) que el intérprete no reconoce porque no ha sido definido previamente en el ámbito actual del código. Esto es, no se ha definido o importado previamente para que el intérprete de Python la conozca.
Por ejemplo, si intentas imprimir una variable que no existe, obtendrás un NameError:
print(variable_inexistente)
Lo que producirá una salida del error en la consola como la que se muestra a continuación:
NameError: name 'variable_inexistente' is not defined
En este caso, la variable variable_inexistente
no ha sido declarada antes de su uso, lo que provoca el error.
Este error se produce cuando intentamos acceder a un nombre que no existe en el contexto actual del código. Algunas de las causas más comunes incluyen:
Intentar usar una variable que nunca ha sido declarada o que está fuera del alcance actual del código.
if True: x = 10 print(y) # Error: 'y' no está definida
En este caso, la variable y
nunca fue declarada antes de su uso, lo que genera el error.
A veces, el error se debe a un simple fallo al escribir el nombre de la variable o función.
mi_variable = 42 print(mi-varaible) # Error tipográfico
Aquí se ha escrito mi-varaible
en lugar de mi_variable
, lo que causa el NameError.
Si intentas usar una variable antes de definirla, obtendrás este error.
print(valor) valor = 100
En este caso, la variable valor
se usa antes de ser declarada, lo que genera el error.
Cuando se trabaja con módulos, es posible olvidar importar un módulo antes de usarlo.
math.sqrt(16) # Error: el módulo 'math' no ha sido importado
Para corregirlo, asegúrate de importar el módulo antes de usarlo:
import math print(math.sqrt(16)) # Correcto
Si intentas acceder a una variable fuera de su ámbito de definición, también obtendrás este error.
def funcion_local(): variable_local = 10 print(variable_local) # Error: la variable no existe fuera de la función
La variable variable_local
solo existe dentro de la función funcion_local()
, por lo que intentar acceder a ella fuera de la función genera un NameError.
Para evitar este problema, sigue estas buenas prácticas al escribir tu código:
Asegúrate siempre de que las variables estén definidas antes de utilizarlas.
mensaje = "Hola, mundo" print(mensaje) # Correcto
Verifica que los nombres de variables y funciones estén escritos correctamente.
edad_usuario = 25 print(edad_usuario) # Correcto
Siempre define las variables antes de usarlas en el código.
valor = 100 print(valor) # Correcto
Antes de utilizar funciones o clases de un módulo, asegúrate de importarlo correctamente.
import math print(math.sqrt(25)) # Correcto
Si necesitas acceder a una variable definida dentro de una función, devuélvela como parte de su resultado.
def obtener_valor(): variable_local = 10 return variable_local print(obtener_valor()) # Correcto
El error “NameError: name X is not defined” puede parecer frustrante al principio, pero con un poco de atención y siguiendo las buenas prácticas mencionadas en esta entrada, podrás evitarlo fácilmente.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…
En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…
En casi cualquier análisis estadístico —ya sea en medicina, psicología, economía o ciencia de datos—…
El MSCI World Index suele presentarse como “la ventana al mundo” para quienes invierten en…
En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…
¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…
This website uses cookies.