From f22d2912fcf9b3f7c6e82866f87947a38de4bb0c Mon Sep 17 00:00:00 2001 From: sklucho Date: Mon, 26 Sep 2022 11:13:52 -0300 Subject: [PATCH 1/4] empezando pra3 --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index f62b235..f0ab647 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,8 @@ sistema de Github Classroom simplemente ejecutando: - Ejercicio 3: Properties. - Ejercicio 4: DataClasses y Sobrecarga de operadores - Ejercicio 5: Herencia y Clases Abstractas. + +Integrantes: +-50636, Luciano Perg +-YYYY, Estefano Sobrero +-XXXX, Franco Procaccini \ No newline at end of file From b8587a2a778ebf0418dd34fc28160144c9359bd1 Mon Sep 17 00:00:00 2001 From: sklucho Date: Mon, 26 Sep 2022 17:01:40 -0300 Subject: [PATCH 2/4] Ej 1 hecho --- exercises/exercise1.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/exercises/exercise1.py b/exercises/exercise1.py index 4d88ccc..6418bc6 100644 --- a/exercises/exercise1.py +++ b/exercises/exercise1.py @@ -20,6 +20,18 @@ class Circle: # NO MODIFICAR - INICIO +class Circle: + def _init_(self, radio): + self.radio = radio + + def area(self): + resultado= 3.14 * self.radio **2 + return resultado + + def perimetro(self) -> float: + resultado = 2 * 3.14 * self.radio + return resultado + # Test básico circle = Circle(1) assert circle.radio == 1 From fb85952a12736feec71ec89ee9da90d2daef352c Mon Sep 17 00:00:00 2001 From: sklucho Date: Mon, 26 Sep 2022 18:06:18 -0300 Subject: [PATCH 3/4] mitad ej 2 --- exercises/exercise2.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/exercises/exercise2.py b/exercises/exercise2.py index 2b02c90..b7a59c3 100644 --- a/exercises/exercise2.py +++ b/exercises/exercise2.py @@ -20,7 +20,19 @@ class Article: - No utilizar Properties - Utilizar Type Hints en todos los métodos y variables """ + +class Article: + + iva = 0.21 + + def _init_(self, nombre: str, costo: float, descuento: float): + self.nombre= nombre + self.costo = costo + self.descuento = descuento + def calcular_precio(self): + calcular_precio = self.costo + (self.costo * Article.iva) + return round(calcular_precio, 2) # NO MODIFICAR - INICIO # Test parámetro obligatorio From 3a5580eeaf6d577aae8eb0ade38cbd77313c7b97 Mon Sep 17 00:00:00 2001 From: sklucho Date: Mon, 17 Oct 2022 16:07:14 -0300 Subject: [PATCH 4/4] Practica 3 Terminada --- exercises/exercise2.py | 24 +++++++++++++----------- exercises/exercise3.py | 17 +++++++++++++++++ exercises/exercise4.py | 11 +++++++++++ exercises/exercise5.py | 35 ++++++++++++++++++++++++++++++++++- 4 files changed, 75 insertions(+), 12 deletions(-) diff --git a/exercises/exercise2.py b/exercises/exercise2.py index b7a59c3..d7b3416 100644 --- a/exercises/exercise2.py +++ b/exercises/exercise2.py @@ -21,18 +21,20 @@ class Article: - Utilizar Type Hints en todos los métodos y variables """ -class Article: - iva = 0.21 - - def _init_(self, nombre: str, costo: float, descuento: float): - self.nombre= nombre - self.costo = costo - self.descuento = descuento - - def calcular_precio(self): - calcular_precio = self.costo + (self.costo * Article.iva) - return round(calcular_precio, 2) + + def __init__(self, nombre, costo, descuento = 0): + self.nombre = nombre + self.costo = costo + self.descuento = descuento + + def calcular_precio(self): + self.precio = (self.costo-self.descuento) * (self.iva + 1) + return round(self.precio,2) + + @classmethod + def actualizar_iva(cls, nuevoIva): + cls.iva = nuevoIva # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise3.py b/exercises/exercise3.py index 331440a..7fd8c86 100644 --- a/exercises/exercise3.py +++ b/exercises/exercise3.py @@ -15,6 +15,23 @@ class Article: - Utilizar Type Hints en todos los métodos y variables """ + iva = 0.21 + + def __init__(self, nombre, costo, descuento = 0): + self.nombre = nombre + self.costo = costo + self.descuento = descuento + + @property + def precio(self): + self.total = (self.costo-self.descuento) * (self.iva + 1) + return round(self.total,2) + + @classmethod + def actualizar_iva(cls, nuevoIva): + cls.iva = nuevoIva + + # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise4.py b/exercises/exercise4.py index b424db7..ab3068d 100644 --- a/exercises/exercise4.py +++ b/exercises/exercise4.py @@ -23,6 +23,17 @@ - Utilizar Type Hints en todos los métodos y variables """ +@dataclass +class Materia: + nombre: str + +@dataclass +class Carrera: + longitud: list + + # Método Mágico + def __str__(self) -> str: + return f"Carrera(materias={self.longitud})" # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise5.py b/exercises/exercise5.py index 92d717c..2ce2d5a 100644 --- a/exercises/exercise5.py +++ b/exercises/exercise5.py @@ -38,10 +38,43 @@ from typing import List +class Contribuyente(ABC): + @abstractmethod + def calcular_sueldo(self): + pass + +@dataclass +class Empleado(Contribuyente): + salario: float + + def calcular_sueldo(self): + resta = (self.salario * 17) / 100 + sueldo = self.salario - resta + return sueldo + +@dataclass +class Monotributista(Contribuyente): + salario: float + + def calcular_sueldo(self): + if self.salario * 12 < 370000: + resta = 2646.22 + elif self.salario * 12 < 550000: + resta = 2958.95 + elif self.salario * 12 < 770000: + resta = 3382.62 + else: + resta = 3988.85 + sueldo = self.salario - resta + return sueldo + def calcular_sueldos(contribuyentes: List[Contribuyente]): """Data una lista de contribuyentes, devuelve una lista de los sueldos de cada uno.""" - + sueldos = [] + for x in contribuyentes: + sueldos.append(x.calcular_sueldo()) + return sueldos # NO MODIFICAR - INICIO assert type(Contribuyente) == abc.ABCMeta, "Contribuyente debe ser abstracta"