Помогите с python пожалуйста
Задача 2. Математический модуль
Что нужно сделать
Вася использует в своей программе очень много различных математических вычислений, связанных с фигурами. Например, нахождение их площадей или периметров. Поэтому, чтобы не захламлять код огромным количеством функций, он решил выделить для них отдельный класс, подключить как модуль и использовать по аналогии с модулем math.
Реализуйте класс MyMath, состоящий как минимум из следующих методов (можете бонусом добавить и другие методы):
вычисление длины окружности,
вычисление площади окружности,
вычисление объёма куба,
вычисление площади поверхности сферы.
Пример основного кода:
res_1 = MyMath.circle _len(radius=5)
res_2 = MyMath.circle _sq(radius=6)
print(res_1)
print(res_2)
Результат:
31.41592653589793
113.09733552923255
import math
class MyMath:
@staticmethod
def circle_len(radius):
"""Вычисление длины окружности."""
return 2 * math.pi * radius
@staticmethod
def circle_sq(radius):
"""Вычисление площади окружности."""
return math.pi * radius**2
@staticmethod
def cube_volume(side_length):
"""Вычисление объёма куба."""
return side_length**3
@staticmethod
def sphere_surface_area(radius):
"""Вычисление площади поверхности сферы."""
return 4 * math.pi * radius**2
# Пример использования
res_1 = MyMath.circle _len(radius=5)
res_2 = MyMath.circle _sq(radius=6)
print(res_1)
print(res_2)
Ответы получаются те которые тебе нужно.
import math
from typing import Union
class MyMath:
@classmethod
def circle_len(cls, radius: Union[int, float]) -> float:
"""Вычисляет длину окружности"""
try:
if isinstance(radius, (int, float)):
return 2 * math.pi * radius
else:
raise ValueError('Invalid radius. Must be int or float.')
except ValueError as e:
print(f'An error occurred: {str(e)}')
@classmethod
def circle_sq(cls, radius: Union[int, float]) -> float:
"""Вычисляет площадь окружности"""
try:
if isinstance(radius, (int, float)):
return math.pi * math.pow(radius, 2)
else:
raise ValueError('Invalid radius. Must be int or float.')
except ValueError as e:
print(f'An error occurred: {str(e)}')
@classmethod
def cube_vol(cls, rib_length: Union[int, float]) -> Union[int, float]:
"""Вычисляет объем куба"""
try:
if isinstance(rib_length, (int, float)):
return math.pow(rib_length, 3)
else:
raise ValueError('Invalid rib length. Must be int or float.')
except ValueError as e:
print(f'An error occurred: {str(e)}')
@classmethod
def surface_area_sphere(cls, radius: Union[int, float]) -> float:
"""Вычисляет площадь поверхности сферы"""
try:
if isinstance(radius, (int, float)):
return 4 * math.pi * math.pow(radius, 2)
else:
raise ValueError('Invalid radius. Must be int or float.')
except ValueError as e:
print(f'An error occurred: {str(e)}')
res_1 = MyMath.circle_len(radius=5)
res_2 = MyMath.circle_sq(radius=6)
res_3 = MyMath.cube_vol(rib_length=5.5)
res_4 = MyMath.surface_area_sphere(radius=4)
print(f'Длина окружности = {round(res_1, 3)}'
f'\nПлощадь окружности = {round(res_2, 3)}'
f'\nОбъём куба = {round(res_3, 3)}'
f'\nПлощадь поверхности сферы = {round(res_4, 3)}') Вот пример реализации класса MyMath, который вы можете использовать в своей программе:
import math
class MyMath:
@staticmethod
def circle_len(radius):
return 2 * math.pi * radius
@staticmethod
def circle_sq(radius):
return math.pi * radius ** 2
@staticmethod
def cube_vol(side):
return side ** 3
@staticmethod
def sphere_sq(radius):
return 4 * math.pi * radius ** 2
Вы можете использовать этот класс следующим образом:
res_1 = MyMath.circle_len(radius=5)
res_2 = MyMath.circle_sq(radius=6)
print(res_1)
print(res_2)
Результат будет таким же, как в вашем примере:
31.41592653589793
113.09733552923255
;;;;;;; изиди дьявол Пайтона!!!! ;;;;;;;Endl;