Guía de diagnóstico

TypeError: la operación no acepta el tipo de objeto que recibió

No existe una conversión universal que arregle un TypeError. Primero decide qué operación querías hacer y qué tipo debería tener cada participante.

Revisado 2026-09-30Ejemplos y diagnóstico

Empieza por la intención, no por str() o int()

pedido.py
cantidad = 3
print(cantidad + " unidades")

Si querías construir texto, una f-string expresa mejor la intención: f"{cantidad} unidades". Si querías sumar cantidades, convertir todo a texto sería precisamente lo contrario de la solución.

TypeError no significa siempre “mezclé número y string”

Operación incompatible

3 + "4" o indexar un objeto que no admite esa operación.

Objeto no invocable

numero() cuando numero contiene un entero y ya no una función.

Argumentos incorrectos

Una función recibe más, menos o tipos de argumentos que no sabe procesar.

Objeto no iterable

Un for, in u otra operación espera poder recorrer el objeto y no puede.

Inspecciona los tipos que existen de verdad

diagnostico.py
print(type(cantidad))
print(type(" unidades"))

Usa type() de forma temporal para contrastar tu supuesto. Después quita el diagnóstico y corrige el modelo de datos.

TypeError frente a ValueError

Si int("12") funciona y int("doce") falla, el tipo de entrada sigue siendo str en ambos casos: ahí el problema es el valor concreto y aparece ValueError. Si la operación ni siquiera admite ese tipo, estás en territorio de TypeError.

Señal de que ya lo entiendesPuedes provocar este error con un ejemplo mínimo, explicar qué supuesto se rompió y elegir una corrección que conserve la intención del programa.

Referencia técnica: documentación oficial de excepciones de Python.