Skip to content

Commit

Permalink
Advanced Task
Browse files Browse the repository at this point in the history
  • Loading branch information
Ronnie5562 committed Jul 24, 2023
1 parent 201c223 commit 89956b8
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 4 deletions.
2 changes: 1 addition & 1 deletion python-classes/100-singly_linked_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ def data(self, value):
self.__data = value

@property
"""property(get&set) for the next_node."""
def next_node(self):
"""property(get&set) for the next_node."""
return self.__next_node

@next_node.setter
Expand Down
70 changes: 70 additions & 0 deletions python-classes/101-square.py
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 ("")
6 changes: 3 additions & 3 deletions python-classes/102-square.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@ def __init__(self, size=0):
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) and not isinstance(value, float)):
raise TypeError('size must be a number')
if (size < 0):
raise ValueError('size must be >= 0')
self.__size = value

def area(self):
"""Returns the area of the current square."""
return (self.__size**2)

def __eq__(self, other_square):
"""Returns the == comparision to a Square."""
return self.area() == other_square.area()
Expand Down

0 comments on commit 89956b8

Please sign in to comment.