Documentos de Académico
Documentos de Profesional
Documentos de Cultura
class Triangulo:
def __init__(self, lado1=3, lado2=3, lado3=3):
self.lado1 = self.validar_lado(lado1)
self.lado2 = self.validar_lado(lado2)
self.lado3 = self.validar_lado(lado3)
def __repr__(self):
return f"[Triángulo: lado1: {self.lado1}, lado2: {self.lado2}, lado3:
{self.lado3}]"
@print_decorator
def existencia(self):
if (self.lado1 + self.lado2 > self.lado3) and (self.lado1 + self.lado3 >
self.lado2) and (
self.lado2 + self.lado3 > self.lado1):
return True
return False
@print_decorator
def calculaAngulos(self):
import math
angulo1 = math.degrees(
math.acos((self.lado2 ** 2 + self.lado3 ** 2 - self.lado1 ** 2) / (2 *
self.lado2 * self.lado3)))
angulo2 = math.degrees(
math.acos((self.lado1 ** 2 + self.lado3 ** 2 - self.lado2 ** 2) / (2 *
self.lado1 * self.lado3)))
angulo3 = 180 - angulo1 - angulo2
return [angulo1, angulo2, angulo3]
@print_decorator
def es_escaleno(self):
if self.lado1 != self.lado2 and self.lado1 != self.lado3 and self.lado2 !=
self.lado3:
return True
return False
@print_decorator
def es_acutangulo(self):
angulos = self.calculaAngulos()
if all(angulo < 90 for angulo in angulos):
return True
return False
@print_decorator
def calculaPerimetro(self):
return self.lado1 + self.lado2 + self.lado3
@print_decorator
def calculaArea(self):
semiperimetro = self.calculaPerimetro() / 2
area = (semiperimetro * (semiperimetro - self.lado1) * (semiperimetro -
self.lado2) * (
semiperimetro - self.lado3)) ** 0.5
return round(area, 2)
def main():
triangulos = []
if __name__ == "__main__":
main()