-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
201c223
commit 89956b8
Showing
3 changed files
with
74 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
#!/usr/bin/python3 | ||
"""Define a class Square.""" | ||
|
||
|
||
class Square: | ||
"""A class that defines a square.""" | ||
|
||
def __init__(self, size=0, position=(0, 0)): | ||
"""Initialize a new square. | ||
Args: | ||
size (int): The size of the new square. | ||
position (int, int): The position of the new square. | ||
""" | ||
self.size = size | ||
self.position = position | ||
|
||
@property | ||
def size(self): | ||
"""property(get&set) for the current size of the square.""" | ||
return (self.__size) | ||
|
||
@size.setter | ||
def size(self, value): | ||
if not isinstance(value, int): | ||
raise TypeError("size must be an integer") | ||
elif value < 0: | ||
raise ValueError("size must be >= 0") | ||
self.__size = value | ||
|
||
@property | ||
def position(self): | ||
"""property(get&set) for the current position of the square.""" | ||
return (self.__position) | ||
|
||
@position.setter | ||
def position(self, value): | ||
if (not isinstance(value, tuple) or | ||
len(value) != 2 or | ||
not all(isinstance(num, int) for num in value) or | ||
not all(num >= 0 for num in value)): | ||
raise TypeError("position must be a tuple of 2 positive integers") | ||
self.__position = value | ||
|
||
def area(self): | ||
"""Return the current area of the square.""" | ||
return (self.__size * self.__size) | ||
|
||
def my_print(self): | ||
"""Prints in stdout the square with the character #.""" | ||
if self.__size == 0: | ||
print("") | ||
return | ||
|
||
[print("") for i in range(0, self.__position[1])] | ||
for i in range(0, self.__size): | ||
[print(" ", end="") for x in range(self.__position[0])] | ||
[print("#", end="") for y in range(self.__size)] | ||
print() | ||
|
||
def __str__(self): | ||
"""The print() representation for a Square obj.""" | ||
if self.__size != 0: | ||
[print() for i in range(0, self.__position[1])] | ||
for i in range(0, self.__size): | ||
[print(" ", end="") for j in range(self.__position[0])] | ||
[print("#", end="") for k in range(self.__size)] | ||
if i != self.__size - 1: | ||
print() | ||
return ("") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters