diff --git a/exercises/exercise1.py b/exercises/exercise1.py index 4d88ccc..8811030 100644 --- a/exercises/exercise1.py +++ b/exercises/exercise1.py @@ -18,6 +18,14 @@ class Circle: - Utilizar Type Hints en todos los métodos y variables """ + def __init__(self,radio): + self.radio=radio + + def area(self): + return round(pi*self.radio**2, 2) + + def perimetro(self): + return round(2*pi*self.radio, 2) # NO MODIFICAR - INICIO # Test básico diff --git a/exercises/exercise2.py b/exercises/exercise2.py index 2b02c90..74fc1e9 100644 --- a/exercises/exercise2.py +++ b/exercises/exercise2.py @@ -1,6 +1,8 @@ """Variables de Clase y Métodos de Clase.""" +from cmath import cos + class Article: """Todos los artículos tienen un nombre y un costo, opcionalmente algunos tienen un porcentaje de descuento. @@ -21,6 +23,20 @@ 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 + + def calcular_precio(self): + precioConIva=round((self.costo+(self.costo*self.iva)),2) + return round(precioConIva-precioConIva*self.descuento,2) + + @classmethod + def actualizar_iva(cls, iva_nuevo): + cls.iva=iva_nuevo # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise3.py b/exercises/exercise3.py index 331440a..02728c5 100644 --- a/exercises/exercise3.py +++ b/exercises/exercise3.py @@ -15,6 +15,22 @@ 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): + precioConIva=round((self.costo+(self.costo*self.iva)),2) + return round(precioConIva-precioConIva*self.descuento,2) + + @classmethod + def actualizar_iva(cls, iva_nuevo): + cls.iva=iva_nuevo # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise4.py b/exercises/exercise4.py index b424db7..b015329 100644 --- a/exercises/exercise4.py +++ b/exercises/exercise4.py @@ -23,6 +23,16 @@ - Utilizar Type Hints en todos los métodos y variables """ +@dataclass +class Materia: + nombre: str + +@dataclass +class Carrera: + longitud: list + + def __len__(self): + return len(self.longitud) # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise5.py b/exercises/exercise5.py index 92d717c..73c0201 100644 --- a/exercises/exercise5.py +++ b/exercises/exercise5.py @@ -38,9 +38,40 @@ from typing import List + +class Contribuyente(ABC): + @abstractmethod + def calcular_sueldo(self): + pass + +@dataclass +class Empleado(Contribuyente): + ingreso:float + def calcular_sueldo(self): + return self.ingreso*0.83 + +@dataclass +class Monotributista(Contribuyente): + ingreso:float + def calcular_sueldo(self): + if(self.ingreso*12<370000): + sueldo=self.ingreso-2646.22 + elif(self.ingreso*12<550000 and self.ingreso*12>=370000): + sueldo=self.ingreso-2958.95 + elif(self.ingreso*12<770000 and self.ingreso*12>=550000): + sueldo=self.ingreso-3382.62 + else: + sueldo=self.ingreso-3988.85 + return sueldo + def calcular_sueldos(contribuyentes: List[Contribuyente]): """Data una lista de contribuyentes, devuelve una lista de los sueldos de cada uno.""" + + sueldos=[] + for i in contribuyentes: + sueldos.append(i.calcular_sueldo()) + return sueldos # NO MODIFICAR - INICIO