3
I’m in some trouble and I don’t know how to fix it:
1) An equilateral triangle, three equal sides and angles = 60°, is read as an isosceles triangle (two equal sides).
2) In addition to printing wrong, I can’t remove that 'NONE'.
3) When the triangle has one of the angles = 90, it is rectangle. But the program does not recognize.
4) The fourth and final problem is that I don’t know how to restart the program: 'Type S to restart or N to finish the program'
Can someone help me ???
import math
# lado a 
a = int(input('Digite o valor de um dos lados do triângulo '))
# lado b
b = int(input('Digite o valor do outro lado do triângulo '))
# angulo entre a e b
m = int(input('Digite o ângulo entre estes dois lados '))
ab = (m*math.pi)/180
# calculo do lado c
def lado_c ():
    global a,b,c,ab
    c = math.sqrt(a**2 + b**2 - 2*a*b*math.cos(ab))
    return round(c,2)
# angulo entre a e c
def angulo_ac ():
    global a,b,c,ac
    n = ((a**2+c**2)-(b**2))/(2*a*c)
    ac = (math.acos(n)*180)/math.pi 
    return (round(ac,2))
# angulo b e c
def angulo_bc ():
    global a,b,c,bc
    p = ((c**2+b**2)-(a**2))/(2*b*c)
    bc =(math.acos(p)*180)/math.pi
    return (round(bc,2))
# perímetro
def perimetro ():
    global P,a,b,c
    P =(a+b+c)
    return P
# área
def area ():
    global a,b,c,P,A
    p = (a+b+c)/2
    A = float(math.sqrt(p*(p-a)*(p-b)*(p-c)))
    return A
# altura
def altura ():
    global A
    h = (A*2)/c
    return h
# classificação quanto aos lados
def lado_class ():
    global a,b,c,ab
    if a!=b and a!=c and b!=c:
        print ('Escaleno')
    elif ab == 60 and a == b and b == c:
        print ('Equilátero')
    elif a != b and b == c or b !=c and c == a or c !=a and a==b:
        print ('Isósceles')
    return
# classificação quanto aos angulos
def angulo_class ():
    global ab, ac, bc            
    if ab == 90 or bc == 90 or ac == 90:
        print ('Retângulo')
    elif ab < 90 and bc < 90 and ac < 90:
        print ('Acutângulo')
    elif ab > 90 and bc < 90 and ac < 90   or   bc > 90 and ac < 90 and ab < 90    or   ac > 90 and ac < 90 and ab < 90 :
        print ('Obtusângulo')
    return 
#-----------------------------------------------------------------------------
print ('Lado c = '+ str(round(lado_c (),2)))
print ('Ângulo entre a e c '+str(angulo_ac ()))
print ('Ângulo entre b e c '+str(angulo_bc ()))
print('Área = '+str(round(area (),2))+' unidades de área')
print('Perímetro = '+str(round(perimetro(),2))+' unidades de comprimento')
print ('Altura, em relação ao lado c = '+str(round(altura (),2))+' unidades de comprimento')
print(lado_class ())
print (angulo_class ())
> import math
# lado a 
a = int(input('Digite o valor de um dos lados do triângulo '))
# lado b
b = int(input('Digite o valor do outro lado do triângulo '))
# angulo entre a e b
m = int(input('Digite o ângulo entre estes dois lados '))
ab = (m*math.pi)/180
# calculo do lado c
def lado_c ():
    global a,b,c,ab
    c = math.sqrt(a**2 + b**2 - 2*a*b*math.cos(ab))
    return round(c,2)
# angulo entre a e c
def angulo_ac ():
    global a,b,c,ac
    n = ((a**2+c**2)-(b**2))/(2*a*c)
    ac = (math.acos(n)*180)/math.pi 
    return (round(ac,2))
# angulo b e c
def angulo_bc ():
    global a,b,c,bc
    p = ((c**2+b**2)-(a**2))/(2*b*c)
    bc =(math.acos(p)*180)/math.pi
    return (round(bc,2))
# perímetro
def perimetro ():
    global P,a,b,c
    P =(a+b+c)
    return P
# área
def area ():
    global a,b,c,P,A
    p = (a+b+c)/2
    A = float(math.sqrt(p*(p-a)*(p-b)*(p-c)))
    return A
# altura
def altura ():
    global A
    h = (A*2)/c
    return h
# classificação quanto aos lados
def lado_class ():
    global a,b,c,ab
    if a!=b and a!=c and b!=c:
        print ('Escaleno')
    elif ab == 60 and a == b and b == c:
        print ('Equilátero')
    elif a != b and b == c or b !=c and c == a or c !=a and a==b:
        print ('Isósceles')
    return
# classificação quanto aos angulos
def angulo_class ():
    global ab, ac, bc            
    if ab == 90 or bc == 90 or ac == 90:
        print ('Retângulo')
    elif ab < 90 and bc < 90 and ac < 90:
        print ('Acutângulo')
    elif ab > 90 and bc < 90 and ac < 90   or   bc > 90 and ac < 90 and ab < 90    or   ac > 90 and ac < 90 and ab < 90 :
        print ('Obtusângulo')
    return 
#-----------------------------------------------------------------------------
print ('Lado c = '+ str(round(lado_c (),2)))
print ('Ângulo entre a e c '+str(angulo_ac ()))
print ('Ângulo entre b e c '+str(angulo_bc ()))
print('Área = '+str(round(area (),2))+' unidades de área')
print('Perímetro = '+str(round(perimetro(),2))+' unidades de comprimento')
print ('Altura, em relação ao lado c = '+str(round(altura (),2))+' unidades de comprimento')
print(lado_class ())
print (angulo_class ())
I also published the code here (it is better to view): https://code.sololearn.com/cUh4dY3oul2A/#py
First of all, do the [tour] to learn how to use the site.
– Woss
Why does it seem to have duplicate code in question? You have pasted twice or are different?
– Woss
@Raphael , in item 1, if a triangle has two equal sides and has 60 degrees between them, you can guarantee that it is equilateral. Then, the if could be
ab == 60 and a == b.– lemoce
@Raphael, NONE is because it is printing the empty Return.
– lemoce