-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpractice04.py
More file actions
111 lines (83 loc) · 3.02 KB
/
practice04.py
File metadata and controls
111 lines (83 loc) · 3.02 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
"""
Write a Python program to create a class that represents a shape.
Include methods to calculate its area and perimeter. Implement subclasses for different
shapes like circle, triangle, and square.
"""
import math
class Shape:
def area(self):
raise NotImplementedError("Subclasses must implement this method")
def perimeter(self):
raise NotImplementedError("Subclasses must implement this method")
class Triangle(Shape):
def __init__(self, side1, side2, side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
super().__init__()
def area(self):
s = (self.side1 + self.side2 + self.side3) / 2
return (s * (s - self.side1) * (s - self.side2) * (s - self.side3)) ** 0.5
def perimeter(self):
return round(self.side1 + self.side2 + self.side3, 3)
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
super().__init__()
def area(self):
return round(3.141592 * self.radius ** 2, 3)
def perimeter(self):
return round(2 * 3.141592 * self.radius, 3)
class Square(Shape):
def __init__(self, side):
self.side = side
super().__init__()
def area(self):
return round(self.side ** 2, 3)
def perimeter(self):
return round(4 * self.side, 3)
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
super().__init__()
def area(self):
return round(self.length * self.width, 3)
def perimeter(self):
return round(2 * (self.length + self.width), 3)
class RegularPolygon(Shape):
def __init__(self, num_sides, side_length):
self.num_sides = num_sides
self.side_length = side_length
super().__init__()
def area(self):
angle = math.pi / self.num_sides
return round((self.num_sides * self.side_length ** 2) / (4 * math.tan(angle)), 3)
def perimeter(self):
return round(self.num_sides * self.side_length, 3)
print("Shape Calculations:_____________________________")
# triangle
triangle1 = Triangle(3, 4, 5)
print("Triangle Area:", triangle1.area())
print("Triangle Perimeter:", triangle1.perimeter())
print("_______________________________________________")
# circle
circle1 = Circle(5)
print("Circle Area:", circle1.area())
print("Circle Perimeter:", circle1.perimeter())
print("_______________________________________________")
# square
square1 = Square(3)
print("Square Area:", square1.area())
print("Square Perimeter:", square1.perimeter())
print("_______________________________________________")
# rectangle
rectangle1 = Rectangle(4, 6)
print("Rectangle Area:", rectangle1.area())
print("Rectangle Perimeter:", rectangle1.perimeter())
print("_______________________________________________")
# octagon
octagon1 = RegularPolygon(8, 4)
print("Octagon Area:", octagon1.area())
print("Octagon Perimeter:", octagon1.perimeter())
print("_______________________________________________")