Рубрики
Без рубрики

Примеры для обработки исключений для обработки исключений Python ValueError

1. Что такое Python ValueError? Python ValueError поднимается, когда функция получает аргумент правильного типа, но не подходящее значение. Так же

Автор оригинала: Pankaj Kumar.

1. Что такое Python ValueError?

Python ValueError поднимается, когда функция получает аргумент правильного типа, но не подходящее значение. Кроме того, ситуация не должна быть описана более точным исключением, таким как indexError.

2. Пример ValueError

Вы получите ValucterRor с математическими операциями, такими как квадратный корень отрицательного числа.

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

3. Обработка исключения ValueError

Вот простой пример для обработки исключений ValueError, используя TRY-BLOCK.

import math

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.')

Вот выход программы с различными типами ввода.

Please enter a positive number:
16
Square Root of 16 is 4.0

Please enter a positive number:
-10
You entered -10, which is not a positive number.

Please enter a positive number:
abc
Traceback (most recent call last):
  File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/errors/valueerror_examples.py", line 11, in 
    x = int(input('Please enter a positive number:\n'))
ValueError: invalid literal for int() with base 10: 'abc'

Наша программа может повысить ValuctionError в функциях int () и Math.sqrt (). Итак, мы можем создать вложенный блок, кроме как раз, чтобы справиться с ними обоими. Вот обновленный фрагмент, чтобы позаботиться обо всех сценариях ValueRor.

import math

try:
    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. Поднятие ValueError в функции

Вот простой пример, где мы поднимаем ValueError для входного аргумента правильного типа, но не подходящего значения.

import math


def 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. Ссылки