-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshapes-exercise.py
More file actions
69 lines (48 loc) · 1.5 KB
/
Copy pathshapes-exercise.py
File metadata and controls
69 lines (48 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from abc import ABC, abstractmethod
from math import pi
class Shape(ABC):
@abstractmethod
def __init__(self):
pass
@abstractmethod
def area_calc(self):
pass
@abstractmethod
def perimeter_calc(self):
pass
class Rectangle(Shape):
def __init__(self, width, length):
self.width = width
self.length = length
def area_calc(self):
return self.width * self.length
def perimeter_calc(self):
return (self.width + self.length) * 2
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area_calc(self):
return f"{pi * (self.radius ** 2):.2f}"
def perimeter_calc(self):
return f"{(2 * pi * self.radius):.2f}"
circumference_calc = lambda self: self.perimeter_calc()
class Triangle(Shape):
def __init__(self, base, height, side1, side2):
self.base = base
self.height = height
self.side1 = side1
self.side2 = side2
def area_calc(self):
return (self.base * self.height) / 2
def perimeter_calc(self):
return self.base + self.side1 + self.side2
#Example usage
rect = Rectangle(3, 4)
circ = Circle(5)
tri = Triangle(21, 9, 22, 14)
print("Rectangle area:", rect.area_calc())
print("Rectangle perimeter:", rect.perimeter_calc())
print("Circle area:", circ.area_calc())
print("Circle circumference:", circ.circumference_calc())
print("Triangle area:", tri.area_calc())
print("Triangle perimeter:", tri.perimeter_calc())