Un ValueError se lanza en Python cuando una función recibe un argumento del tipo correcto pero con un valor inapropiado. El tipo es correcto, pero el contenido o número real no tiene sentido para esa operación.
Por qué ocurre
- •Pasar un string no numérico a int() o float().
- •Proporcionar un valor fuera del rango válido para una operación (por ejemplo math.sqrt(-1)).
- •Desempaquetar una secuencia en una cantidad incorrecta de variables.
- •Pasar un string vacío donde se requiere uno no vacío.
Ejemplos
Código que causa el error
number = int("hello")
print(number)Error en la terminal
Traceback (most recent call last):
File "app.py", line 1, in <module>
number = int("hello")
ValueError: invalid literal for int() with base 10: 'hello'Cómo solucionarlo
Valida los valores de entrada antes de pasarlos a funciones con requisitos estrictos. Usa try/except ValueError para manejar la entrada del usuario con gracia. Consulta la documentación para conocer los rangos de valores válidos al llamar funciones matemáticas o de conversión.
Código corregido
raw = "hello"
try:
number = int(raw)
except ValueError:
print(f"'{raw}' is not a valid number")
number = 0
print(number) # 0Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis