import math
# 1. Класс, представляющий окружность
class Circle:
def __init__(self, radius):
"""Метод инициализации, который принимает радиус окружности."""
self.radius = radius
def area(self):
"""Метод, возвращающий площадь окружности."""
return math.pi * (self.radius ** 2)
def circumference(self):
"""Метод, возвращающий длину окружности."""
return 2 * math.pi * self.radius
# 2. Класс, представляющий прямоугольник
class Rectangle:
def __init__(self, width, height):
"""Метод инициализации, который принимает ширину и высоту прямоугольника."""
self.width = width
self.height = height
def area(self):
"""Метод, возвращающий площадь прямоугольника."""
return self.width * self.height
def perimeter(self):
"""Метод, возвращающий периметр прямоугольника."""
return 2 * (self.width + self.height)
# 3. Класс, представляющий треугольник
class Triangle:
def __init__(self, side1, side2, side3):
"""Метод инициализации, который принимает длины сторон треугольника."""
self.side1 = side1
self.side2 = side2
self.side3 = side3
def perimeter(self):
"""Метод, возвращающий периметр треугольника."""
return self.side1 + self.side2 + self.side3
def area(self):
"""Метод, возвращающий площадь треугольника (по формуле Герона)."""
p = self.perimeter() / 2 # Полупериметр
return math.sqrt(p * (p - self.side1) * (p - self.side2) * (p - self.side3))
# --- Пример использования созданных классов ---
if __name__ == "__main__":
print("--- Окружность ---")
my_circle = Circle(5)
print(f"Радиус: 5")
print(f"Площадь: {my_circle.area():.2f}")
print(f"Длина окружности: {my_circle.circumference():.2f}")
print("\n--- Прямоугольник ---")
my_rect = Rectangle(4, 6)
print(f"Ширина: 4, Высота: 6")
print(f"Площадь: {my_rect.area()}")
print(f"Периметр: {my_rect.perimeter()}")
print("\n--- Треугольник ---")
my_triangle = Triangle(3, 4, 5)
print(f"Стороны: 3, 4, 5")
print(f"Периметр: {my_triangle.perimeter()}")
print(f"Площадь: {my_triangle.area():.2f}")