В Python очень легко выполнять такие операции, как деление и работа с файлами. Однако иногда во время выполнения программы могут возникнуть ошибки, из-за которых программа неожиданно остановится. Здесь на помощь приходит обработка исключений. В Python для обработки исключений используются блоки try и except. Операции, которые могут вызвать исключения, помещаются внутри блока try, а код для обработки исключений размещается внутри блока except.
Рассмотрим простую операцию деления:
a = int(input())
b = int(input())
print(a / b)
print('The program continues...')
В случае ввода 10 и 2, программа выведет 5.0 и The program continues.... Однако, если мы введем 10 и 0, программа остановится и выведет сообщение об ошибке: ZeroDivisionError: division by zero.
Чтобы обработать эту ошибку, мы можем использовать обработку исключений:
try: # Попытка выполнить операции в блоке
a = int(input())
b = int(input())
print(a / b)
except ZeroDivisionError: # Действия при возникновении ZeroDivisionError
print('Error: Division by zero is not allowed.')
print('The program continues...')
Теперь, если мы запустим программу с вводом 10 и 0, она выведет Error: Division by zero is not allowed. и The program continues....
Аналогично мы можем обработать другие исключения, такие как ValueError, которое возникает, когда ввод не является целым числом. Мы можем добавить еще один блок except для обработки этой ошибки:
try:
a = int(input())
b = int(input())
print(a / b)
except ZeroDivisionError:
print('Error: Division by zero is not allowed.')
except ValueError:
print('Error: Input is not a valid integer.')
Мы можем добавлять столько блоков except, сколько необходимо для обработки разных типов исключений. Таким образом, мы можем обеспечить, чтобы наша программа не останавливалась неожиданно из-за ошибок, и предоставить пользователю полезные сообщения.
💡
Важно отметить, что порядок блоков except имеет значение.
Python выполнит первый блок except, который соответствует типу возникшей ошибки. Если ни один из блоков except не подходит, ошибка не будет обработана.
Вы также можете перехватывать несколько исключений в одной строке:
try:
a = int(input())
b = int(input())
print(a / b)
except (ZeroDivisionError, ValueError) as e:
print('Error:', e)
Здесь переменная e будет содержать экземпляр возникшего исключения.
Используя обработку исключений, мы можем сделать наши программы на Python более устойчивыми и удобными для пользователя.
Задание: Площадь прямоугольника
Вам нужно написать программу, которая считывает два числа с плавающей точкой из ввода; эти числа h и w представляют высоту и ширину прямоугольника. Ваша задача — вычислить и вывести площадь прямоугольника.
Однако не все вводимые данные гарантированно являются числами. Если h или w не является числом, вы должны обработать исключение и вывести The input is not a number.
Первая строка ввода содержит высоту h, а вторая строка содержит ширину w.
Программа должна вывести одну строку с площадью прямоугольника, если вводимые данные являются числами, или The input is not a number, если одно или оба значения не являются корректными числами.
Ввод
Вывод
5.2
7.8
40.56
3.7
abc
The input is not a number
abc
5.5
The input is not a number
abc
def
The input is not a number
Примечание: Если вводятся числа, то это будут только положительные числа.