Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите написать код плиз и объяснить

задание №1. Создать 3 класса исключений унаследованных от BaseException

задание №2. Напишите функцию, принимающую на вход длины двух катетов прямоугольного треугольника и возвращающую длину гипотенузы, рассчитанную
по теореме Пифагора. В главной программе должен осуществляться
запрос длин сторон у пользователя, вызов функции и вывод на экран
полученного результата.
Написать декоратор этой функции, который будет выводить в консоль время запуска функции, размеры сторон и результат вычисления.

По дате
По рейтингу
Аватар пользователя
Мудрец

Код для задания №1:

```python
class FirstException(BaseException):
pass

class SecondException(BaseException):
pass

class ThirdException(BaseException):
pass
```

Здесь мы создали 3 класса исключений, которые унаследованы от базового класса `BaseException`. Каждый из них не содержит дополнительной логики, поэтому просто наследуется от базового класса.

Код для задания №2:

```python
import time

def measure(func):
def wrapper(*args):
start_time = time.time()
result = func(*args)
end_time = time.time()
print(f"Function {func.__name__} was executed in {end_time-start_time:.2f} seconds")
print(f"Sides: {args}")
print(f"Result: {result}")
return result
return wrapper

@measure
def calculate_hypotenuse(a, b):
c = (a**2 + b**2)**0.5
return c

if __name__ == '__main__':
a = float(input("Enter the length of the first cathetus: "))
b = float(input("Enter the length of the second cathetus: "))

hypotenuse = calculate_hypotenuse(a, b)

print(f"The length of the hypotenuse is {hypotenuse:.2f}")
```

В этом коде мы сначала определяем декоратор `measure`, который будет замерять время выполнения функции и выводить на экран размеры сторон и результат вычисления.

Далее мы определяем функцию `calculate_hypotenuse`, которая принимает два аргумента - длины катетов `a` и `b` - и вычисляет длину гипотенузы по теореме Пифагора. Мы также применяем декоратор `measure` к этой функции, чтобы измерить время выполнения.

Затем мы запрашиваем у пользователя длины катетов и вызываем функцию `calculate_hypotenuse`, передавая ей эти значения. Результат сохраняется в переменной `hypotenuse`.

Наконец, мы выводим результат на экран с помощью функции `print`.

Обратите внимание, что декоратор должен быть определен до основной функции `calculate_hypotenuse`, чтобы он мог быть применен к этой функции. Кроме того, мы используем директиву `if __name__ == '__main__':`, чтобы код в этом блоке выполнялся только при запуске данного файла через интерпретатор Python, а не при его импорте в другой файл.