Clase Rectángulo - Python Programming Exercise

En este ejercicio, desarrollarás un proyecto en Python llamado "Shapes", incorporando una clase llamada "Square". Cada cuadrado almacenará las coordenadas X e Y iniciales (que representan la esquina superior izquierda, almacenadas en una clase "Location") y la longitud de su lado. Este ejercicio es perfecto para practicar la definición de clases, la implementación de métodos y la programación orientada a objetos en Python. Al implementar este proyecto, obtendrás experiencia práctica en el manejo de definiciones de clases, implementación de métodos y programación orientada a objetos en Python. Este ejercicio no solo refuerza tu comprensión de la programación orientada a objetos, sino que también te ayuda a desarrollar prácticas de codificación eficientes para gestionar las interacciones con el usuario. Además, este ejercicio proporciona una excelente oportunidad para explorar la versatilidad de Python en aplicaciones del mundo real. Al trabajar con definiciones de clases e implementación de métodos, aprenderás a estructurar tu código de manera eficiente, lo cual es una habilidad crucial en muchos escenarios de programación. Este ejercicio también te anima a pensar críticamente sobre cómo estructurar tu código para la legibilidad y el rendimiento, convirtiéndolo en una valiosa adición a tu portafolio de programación. Ya seas un principiante o un programador experimentado, este ejercicio te ayudará a profundizar tu comprensión de Python y mejorar tus habilidades para resolver problemas.

 Categoría

POO Programación Orientada Objetos

 Ejercicio

Clase Rectángulo

 Objectivo

Desarrolla un proyecto Python llamado "Formas", que incorpore una clase llamada "Cuadrado". Cada cuadrado almacenará las coordenadas X e Y iniciales (que representan la esquina superior izquierda, almacenadas en una clase "Ubicación") y la longitud de su lado.

Necesitas crear lo siguiente:

- Un constructor adecuado para inicializar las coordenadas X, Y y la longitud del lado.

- Un método de movimiento para cambiar las coordenadas X e Y.

- Un método de escala para modificar la longitud del lado (por ejemplo, un factor de escala de 2 transformaría un lado de 3 en 6).

- Un método __str__ para devolver una cadena con la información del cuadrado, como "Esquina (10,5), lado 7".

- Redefinir los métodos get_perimeter y get_area para devolver los valores correctos.

- Se otorgará otro punto por los atributos y la estructura general de la clase.

- Los puntos restantes son para la prueba en la función "principal".

 Ejemplo de ejercicio de Python

 Copiar código Python
# location.py
class Location:
    def __init__(self, x, y):
        self.x = x  # X coordinate of the upper-left corner
        self.y = y  # Y coordinate of the upper-left corner

    def __str__(self):
        return f"({self.x}, {self.y})"  # Return the coordinates as a string


# square.py
class Square:
    def __init__(self, x, y, side_length):
        self.location = Location(x, y)  # Create a Location instance for the square's corner
        self.side_length = side_length  # The length of the side of the square

    def move(self, new_x, new_y):
        self.location.x = new_x  # Update the X coordinate of the square's upper-left corner
        self.location.y = new_y  # Update the Y coordinate of the square's upper-left corner

    def scale(self, factor):
        self.side_length *= factor  # Scale the side length by the given factor

    def get_perimeter(self):
        return 4 * self.side_length  # Perimeter of a square is 4 times the side length

    def get_area(self):
        return self.side_length ** 2  # Area of a square is side length squared

    def __str__(self):
        return f"Corner {self.location}, side {self.side_length}"  # Return the square's description


# main.py (Test program)
if __name__ == '__main__':
    # Create a Square object with initial coordinates (10, 5) and side length 7
    square1 = Square(10, 5, 7)
    print(square1)  # Output the square's details

    # Get the perimeter and area of the square
    print(f"Perimeter: {square1.get_perimeter()}")  # Perimeter should be 28
    print(f"Area: {square1.get_area()}")  # Area should be 49

    # Move the square to a new position (15, 20)
    square1.move(15, 20)
    print("After moving:", square1)  # Output the new square's details

    # Scale the square by a factor of 2
    square1.scale(2)
    print("After scaling:", square1)  # Output the scaled square's details

    # Get the new perimeter and area after scaling
    print(f"New Perimeter: {square1.get_perimeter()}")  # New perimeter should be 56
    print(f"New Area: {square1.get_area()}")  # New area should be 196

 Output

Corner (10, 5), side 7
Perimeter: 28
Area: 49
After moving: Corner (15, 20), side 7
After scaling: Corner (15, 20), side 14
New Perimeter: 56
New Area: 196

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de POO Programación Orientada Objetos

¡Explora nuestro conjunto de ejercicios de programación Python! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de Python. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en Python.

  •  Clase Compras

    En este ejercicio, desarrollarás un proyecto en Python con las clases necesarias (distribuidas en varios archivos) según el diagrama de clases proporcionado. Cada cla...

  •  Clase Esfera de color

    En este ejercicio, desarrollarás un proyecto en Python y ampliarás el ejercicio anterior para incluir "Círculos de Colores". Cada círculo debe tener un radio, coorden...

  •  Clases: Alumno e Instructor

    En este ejercicio, desarrollarás un programa en Python que incorpora una clase Person. Luego, crearás dos clases adicionales, Student y Teacher, que heredan de Person...

  •  Colección de fotografías de clase

    En este ejercicio, desarrollarás un programa en Python con una clase llamada "PhotoAlbum" que incluye un atributo privado "pageCount". Este ejercicio es perfec...

  •  Clase de figuras geométricas

    En este ejercicio, desarrollarás un proyecto en Python con las clases requeridas, organizándolas en archivos separados, de acuerdo con un diagrama de clases. Este ...

  •  Clase de vehículos

    En este ejercicio, desarrollarás un proyecto en Python con las clases correspondientes, distribuidas en varios archivos, según el diagrama de clases proporcionado. Ca...