
Abel Ortiz H.
PreguntaAlguien me da una mano para entender como anido otra funcion para calcular el area del triangulo ESCALENO :
Escaleno
- 3 lados ≠
A = √sp(sp-a)(sp-b)(sp-c)
sp = (a + b + c) / 2
def run(): import math print("Calcula el area de un triango ingesando los valores de sus 3 lados.") a = float(input("Valor lado (a): ")) b = float(input("valor de la base (b): ")) c = float(input("Valor lado (c): ")) #Isosceles tiene 2 lados iguales a == c if a == c and a != b: area = (b * (math.sqrt((a**2)-((b**2)/4))))/2 print(f'Este es un trianglo ISOSCELES y su area es {round(area, 2)}') #Equilatero tiene 3 lados iguales elif a == c and c == b: area = ((a**2)*(math.sqrt(3)))/4 print(f'Este es un trianglo EQUILATERO y su area es {round(area,2)}') #Escaleno tiene todos los lados desiguales sp=(a+b+c)/2 elif a != b and a != c and b != c: area = math.sqrt((a+b+c)/2)*((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c) print(f'Este es un trianglo ESCALENO y su area es {round(area,2)}') if __name__ == '__main__': run()

Ismael Grimaldo Vega
Bro, es recomendable separar las operaciones grandes en partes más pequeñas, esto principalmente para mejorar la legibilidad de tu código y evitar resultados inesperados con la jerarquía de los operadores aritméticos.
Te muestro cómo quedó el resultado con una mejor estructura:
#Escaleno tiene todos los lados desiguales sp=(a+b+c)/2 elif a != b and a != c and b != c: s = (a + b + c) / 2 multiplicar_semiperimetro = s * (s - a) * (s - b) * (s - c) area = math.sqrt(multiplicar_semiperimetro) print(f'Este es un trianglo ESCALENO y su area es {round(area,2)}')