Si estás aprendiendo Python, es casi seguro que ya has visto algo como esto:
TypeError: unsupported operand type(s)
Y la pregunta inmediata es:
¿qué significa TypeError y qué hice mal?
En este artículo aprenderás:
- Qué es un
TypeError - Por qué ocurre
- Los casos más comunes
- Cómo solucionarlo paso a paso
- Cómo evitarlo en el futuro
Todo explicado en español claro y con ejemplos reales.
¿Qué es un TypeError en Python?
Un TypeError ocurre cuando usas un tipo de dato incorrecto para una operación.
En otras palabras:
Python entiende tu instrucción, pero los tipos no encajan.
Ejemplo simple:
"5" + 3
Esto provoca:
TypeError: can only concatenate str (not "int") to str
Porque:
"5"es texto (str)3es número (int)- Python no sabe cómo sumarlos directamente
Caso común 1: Sumar texto y números
Código con error
edad = "20"print(edad + 5)
Solución
Convierte el tipo correctamente:
edad = "20"print(int(edad) + 5)
O, si quieres texto:
print(edad + str(5))
Caso común 2: Usar una función incorrectamente
len(5)
Error:
TypeError: object of type 'int' has no len()
Porque len() solo funciona con:
- listas
- strings
- tuplas
- diccionarios
No con números.
Caso común 3: Llamar algo que no es una función
numero = 10numero()
Error:
TypeError: 'int' object is not callable
Solución:
- No uses paréntesis si no es una función
Caso común 4: Pasar mal los argumentos a una función
def sumar(a, b): return a + bsumar(5)
Error:
TypeError: missing required positional argument
Solución:
- Pasa todos los argumentos requeridos
sumar(5, 3)
Caso común 5: Usar None como si fuera un valor
resultado = Noneprint(resultado + 5)
Error:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Solución:
- Verifica que el valor no sea
Noneantes de usarlo
if resultado is not None: print(resultado + 5)
Cómo leer un TypeError correctamente
Un error típico se lee así:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Traducción:
- Operación:
+ - Tipos involucrados:
intystr - Problema: no compatibles
👉 El mensaje te dice exactamente qué está mal.
Cómo evitar TypeError al programar
Buenas prácticas:
- Conoce los tipos de datos
- Convierte tipos explícitamente (
int(),str(),float()) - Usa
print(type(variable))para depurar - No asumas que un valor existe
- Valida entradas del usuario
Ejemplo práctico completo
entrada = input("Introduce un número: ")if entrada.isdigit(): numero = int(entrada) print(numero + 10)else: print("No es un número válido")
Aquí evitamos el TypeError antes de que ocurra.
Por qué este error es tan común (y normal)
TypeError es uno de los primeros errores que todo programador encuentra.
No significa que:
- Seas malo programando
- No entiendas Python
Significa que:
- Estás aprendiendo
- Estás escribiendo código real
Practicar errores de forma inteligente
La mejor forma de aprender errores es:
- Provocarlos
- Leerlos
- Entenderlos
- Corregirlos
👉 En SolveConPython.com los retos incluyen errores reales y controlados, para que aprendas a solucionarlos como en el mundo real.
Conclusión
Un TypeError indica un problema de tipos de datos, no de lógica compleja.
Si aprendes a:
- Leer el mensaje
- Identificar los tipos
- Convertir correctamente
este error dejará de asustarte y se volverá una herramienta de aprendizaje.
Siguiente artículo
¿Cómo solucionar
IndexError: list index out of rangeen Python?