Ejemplos de manejo de excepciones ValueError en Python

1. ¿Qué es Python ValueError?

Python ValueError se genera cuando una función recibe un argumento del tipo correcto pero un valor inadecuado. Además, la situación no debería describirse mediante una excepción más precisa como IndexError.

2. Ejemplo de ValueError

Obtendrá ValueError con operaciones matemáticas, como la raíz cuadrada de un número negativo.

 import math  math.sqrt(-10)Traceback (most recent call last):  File "stdin", line 1, in moduleValueError: math domain error 

3. Manejo de la excepción ValueError

A continuación se muestra un ejemplo simple para manejar la excepción ValueError usando el bloque try-except.

import mathx = int(input('Please enter a positive number:n'))try:    print(f'Square Root of {x} is {math.sqrt(x)}')except ValueError as ve:    print(f'You entered {x}, which is not a positive number.')

Aquí está la salida del programa con diferentes tipos de entrada.

Please enter a positive number:16Square Root of 16 is 4.0Please enter a positive number:-10You entered -10, which is not a positive number.Please enter a positive number:abcTraceback (most recent call last):  File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/errors/valueerror_examples.py", line 11, in module    x = int(input('Please enter a positive number:n'))ValueError: invalid literal for int() with base 10: 'abc'

Nuestro programa puede generar ValueError en las funciones int() y math.sqrt(). Por lo tanto, podemos crear un bloque try-except anidado para manejar ambas. Aquí se incluye el fragmento actualizado para ocuparse de todos los escenarios de ValueError.

import mathtry:    x = int(input('Please enter a positive number:n'))    try:        print(f'Square Root of {x} is {math.sqrt(x)}')    except ValueError as ve:        print(f'You entered {x}, which is not a positive number.')except ValueError as ve:    print('You are supposed to enter positive number.')

4. Generar ValueError en una función

A continuación se muestra un ejemplo simple en el que generamos ValueError para un argumento de entrada de tipo correcto pero de valor inapropiado.

import mathdef num_stats(x):    if x is not int:        raise TypeError('Work with Numbers Only')    if x  0:        raise ValueError('Work with Positive Numbers Only')    print(f'{x} square is {x * x}')    print(f'{x} square root is {math.sqrt(x)}')

5. Referencias

  • Manejo de excepciones en Python
  • Documentación de Python sobre ValueError
SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio