-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3-rectangle.py
More file actions
executable file
·131 lines (81 loc) · 2.44 KB
/
Copy path3-rectangle.py
File metadata and controls
executable file
·131 lines (81 loc) · 2.44 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/usr/bin/python3
"""
This module is composed by a class that defines a Rectangle
"""
class Rectangle:
""" Class that defines a rectangle """
def __init__(self, width=0, height=0):
""" Method that initializes the instance
Args:
width: rectangle width
height: rectangle height
"""
self.width = width
self.height = height
@property
def width(self):
""" method that returns the value of the width
Returns:
rectangle width
"""
return self.__width
@width.setter
def width(self, value):
""" method that defines the width
Args:
value: width
Raises:
TypeError: if width is not an integer
ValueError: if width is less than zero
"""
if not isinstance(value, int):
raise TypeError("width must be an integer")
if value < 0:
raise ValueError("width must be >= 0")
self.__width = value
@property
def height(self):
""" method that returns the value of the height
Returns:
rectangle height
"""
return self.__height
@height.setter
def height(self, value):
""" method that defines the height
Args:
value: height
Raises:
TypeError: if height is not an integer
ValueError: if height is less than zero
"""
if not isinstance(value, int):
raise TypeError("height must be an integer")
if value < 0:
raise ValueError("height must be >= 0")
self.__height = value
def area(self):
""" Method that calculates the Rectangle area
Returns:
rectangle area
"""
return self.width * self.height
def perimeter(self):
""" Method that calculates the Rectangle perimeter
Returns:
rectangle perimeter
"""
if self.width == 0 or self.height == 0:
return 0
return (2 * self.width) + (2 * self.height)
def __str__(self):
""" Method that returns the Rectangle #
Returns:
str of the rectangle
"""
rectangle = ""
if self.width == 0 or self.height == 0:
return rectangle
for i in range(self.height):
rectangle += ("#" * self.width) + "\n"
return rectangle[:-1]