diff --git a/exercises/exercise1.py b/exercises/exercise1.py index 4d88ccc..3243c9c 100644 --- a/exercises/exercise1.py +++ b/exercises/exercise1.py @@ -1,6 +1,7 @@ """Variables de Instancia y Métodos de instancia.""" from math import pi +from multiprocessing.heap import Arena class Circle: @@ -17,6 +18,16 @@ class Circle: - No utilizar Properties - Utilizar Type Hints en todos los métodos y variables """ + circle=1 + area= pi *circle ** 2 + perimetro= 2 * pi *circle + + def __init__(self,area,perimetro):#type hints + + self.area="area" + self.perimetro="perimetro" + print("El area de la circunferencia es : {:.2f}").__format__(area) + print("El perimetro de la circunferencia es : {:.2f}").__format__(perimetro) # NO MODIFICAR - INICIO diff --git a/exercises/exercise2.py b/exercises/exercise2.py index 2b02c90..44d1644 100644 --- a/exercises/exercise2.py +++ b/exercises/exercise2.py @@ -19,10 +19,24 @@ class Article: - No utilizar Dataclasses - No utilizar Properties - Utilizar Type Hints en todos los métodos y variables - """ + """ + #variable de clase + _iva=0.21 + + def __init__(self,nombre,costo,descuento): + self.nombre=nombre + self.costo=costo + self.descuento=descuento + +class precio: + def __init__(self,iva,Ptotal,dto=0): + self.iva="0.21" + self.Ptotal="Calcular" + +def Calcular(precio,iva): + calcular= precio*iva -# NO MODIFICAR - INICIO # Test parámetro obligatorio try: article = Article() diff --git a/exercises/exercise3.py b/exercises/exercise3.py index 331440a..05db615 100644 --- a/exercises/exercise3.py +++ b/exercises/exercise3.py @@ -14,6 +14,20 @@ class Article: - No utilizar Dataclasses - 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.costo=costo + self.descuento=descuento + +@property +def precio(self) : + precio = round(self.costo + (self.costo * self.__iva),2) + precio_final = round(precio - (self.descuento * precio),2) + return precio_final + # NO MODIFICAR - INICIO diff --git a/exercises/exercise4.py b/exercises/exercise4.py index b424db7..cdbab75 100644 --- a/exercises/exercise4.py +++ b/exercises/exercise4.py @@ -23,6 +23,20 @@ - Utilizar Type Hints en todos los métodos y variables """ +@dataclass +class Carrera: + longitud:list + + def __str__(self): + return f"Carrera(materias={self.longitud})" + + def __len__(self): + return len(self.longitud) + +@dataclass +class Materia: + nombre:str + # NO MODIFICAR - INICIO # Test parámetro obligatorio diff --git a/exercises/exercise5.py b/exercises/exercise5.py index 92d717c..9c4dcc2 100644 --- a/exercises/exercise5.py +++ b/exercises/exercise5.py @@ -37,12 +37,39 @@ from dataclasses import dataclass 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.""" +def calcular_sueldos(contribuyentes: List[Contribuyente]): + sueldos=[] + for i in contribuyentes: + sueldos.append(i.calcular_sueldo()) + return sueldos + # NO MODIFICAR - INICIO assert type(Contribuyente) == abc.ABCMeta, "Contribuyente debe ser abstracta" assert issubclass(Empleado, Contribuyente), "Empleado debe heredar de Contribuyente" # noqa: 501