Parte 9 — Errores relacionados con tipos
6.49 TypeError
Un TypeError aparece cuando intentamos realizar una operación incompatible con los tipos utilizados.
Ejemplo:
saldo = 1000 moneda = "CRC"
resultado = saldo + moneda
Python no sabe cómo sumar el número 1000 y el texto "CRC".
Puede mostrar un mensaje parecido a:
TypeError: unsupported operand type(s) for +: 'int' and 'str' 6.50 Leer el mensaje
El error indica:
int
y:
str
Eso significa que el problema involucra un entero y un texto.
Podemos mostrar ambos mediante print():
saldo = 1000 moneda = "CRC"
print(saldo, moneda)
O construir texto:
mensaje = str(saldo) + " " + moneda
print(mensaje) 6.51 Otro ejemplo de TypeError nombre = "Daniel"
resultado = nombre - 5
Python no puede restarle un número a un texto.
El problema no está en el operador - por sí mismo.
El problema está en utilizarlo con tipos incompatibles.
6.52 ValueError
Un ValueError aparece cuando el tipo de operación es posible, pero el valor concreto no puede convertirse.
Esto funciona:
numero = int("100")
Esto produce ValueError:
numero = int("cien")
El texto "cien" no tiene el formato numérico que int() espera.
6.53 Diferencia entre TypeError y ValueError
Ejemplo de TypeError:
resultado = 1000 + "500"
Estamos intentando sumar tipos incompatibles.
Ejemplo de ValueError:
resultado = int("quinientos")
Estamos intentando convertir un texto, pero su contenido no representa un número válido.
No necesitas memorizar la definición exacta todavía.
Lo importante es comenzar a reconocer los nombres.
6.54 Utilizar type() para encontrar el problema saldo = "1000" ingreso = 500
print(type(saldo)) print(type(ingreso))
Resultado:
<class 'str'> <class 'int'>
Ahora sabemos por qué esto falla:
saldo += ingreso
Debemos convertir primero:
saldo = int(saldo) saldo += ingreso