Diagnóstico, no adivinación

Errores en Python: aprende a leer el traceback y encontrar la causa

Un traceback no es una pared de texto: contiene una ruta, una línea y un mensaje. Aprende a extraer esas tres pistas antes de cambiar código al azar.

Anatomía

Empieza por la última línea; después vuelve a tu código

La última línea suele decir qué tipo de excepción ocurrió y aporta un mensaje. Las líneas anteriores muestran la cadena de llamadas. Cuando hay código de librerías y código tuyo mezclados, localiza primero el marco que pertenece a tu archivo.

Traceback (most recent call last):
  File "pedido.py", line 8, in <module>
    total = precio + " €"
            ~~~~~~~^~~~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Primera decisión

¿En qué familia cae el problema?

El nombre de la excepción reduce drásticamente el espacio de búsqueda.

El programa no empieza

SyntaxError o IndentationError: revisa estructura, delimitadores, dos puntos y bloques.

Python no encuentra algo

NameError, ModuleNotFoundError o FileNotFoundError: comprueba nombres, entorno y rutas.

El valor existe, pero no encaja

TypeError, ValueError o AttributeError: inspecciona tipo, valor y operación.

Una colección no contiene lo pedido

KeyError e IndexError: comprueba clave, índice, longitud y supuestos sobre los datos.

El cálculo tiene un caso límite

ZeroDivisionError: localiza de dónde sale el divisor y qué debería significar el caso cero.

El ámbito cambia el significado de un nombre

UnboundLocalError: sigue asignaciones dentro de funciones y distingue nombres locales de externos.

El protocolo de 5 minutos cuando te bloqueas

  1. Copia la última línea del traceback y nombra la excepción.
  2. Busca la primera línea de tu código implicada en la traza.
  3. Inspecciona los valores que participan: contenido, tipo, longitud o ruta según el caso.
  4. Reduce el ejemplo hasta que el mismo error aparezca con el mínimo código posible.
  5. Cambia una hipótesis y vuelve a ejecutar. Si el error cambia, has obtenido información nueva.
Cómo pedir ayuda mejorComparte el mensaje completo, un ejemplo mínimo reproducible, qué esperabas y qué ocurrió. “No funciona” obliga a quien ayuda a reconstruir información que el traceback ya puede aportar.