CODEZEROINTERACTIVE

Chapter 6 / 15

Parte 9 — Errores relacionados con tipos

Tipos de datos en Python, conversiones, errores comunes y representación correcta de información.

Lesson 1032%

10 / 18 lessons in this chapter

Parte 9 — Errores relacionados con tipos

1 / 1 in this part

Current chapter

Chapter 6 — Tipos de datos: no toda la información es igual

Self-paced

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