2017-02-12 5 views
-1

Ich muss ein Programm schreiben, das Benutzereingabe für die Seiten eines Dreiecks nimmt und druckt, wenn es ein rechtes Dreieck ist und was der Bereich ist. Meine Aufgabe fordert uns auch auf, sicherzustellen, dass keine Seite länger ist als die Summe der beiden anderen Seiten. Ich habe versucht herauszufinden, wie mein Code für eine Seite funktioniert, die nicht länger ist als die Summe der anderen beiden Seiten, und den Benutzer auffordern, von vorn zu beginnen, aber ich bin ratlos. Ich habe auch ein Problem, wo, wenn mein Programm läuft druckt die Worte keine, ich denke, es hat mit meiner def right_tri Funktion zu tun, aber ich bin mir nicht sicher, warum es das tun würde.Dreieck Ungleichheit

Hier ist mein Code jede Hilfe würde sehr geschätzt werden!

def area(a, b, c): 
    s = (a + b + c)/2 

    area = (s*(s-a)*(s-b)*(s-c)) **0.5 
    return format(area, '.2f') 

def right_tri(a, b, c): 
    if (b**2 + c**2 == a**2): 
     print('Is a right triangle') 

else: 
     print('Is not a right triangle') 

def main() : 

    a = int(input('Enter longest side of the triangle')) 
    b = int(input('Enter the second side of the triangle')) 
    c = int(input('Enter the thrid side of the triangle')) 

    print('Area is:', triangle.area(a, b, c)) 
    print(triangle.right_tri(a, b, c)) 
    print(is_sum(a, b, c)) 

def is_sum(a, b, c): 
    if (a > b + c) or (b > a + c) or (c > a + b): 
     print ('One side is longer than the sum of the other two sides') 
else: 
    return True 

main() 
+0

Für jedes Dreieck ** es ist unmöglich, dass eine Seite länger ist als die Summe der beiden anderen Seiten **! Es gibt absolut keine Notwendigkeit, auf diese Bedingung zu prüfen. –

Antwort

0

Unter der Annahme, die Vertiefung des Codes korrekt ist (wie Python auf sie stützt) nach sollte die Umsetzung von right_tri,

def right_tri(a, b, c): 
    if ((b**2 + c**2 == a**2) || (a**2 + c**2 == b**2) || (b**2 + a**2 == c**2)): 
     print('Is a right triangle') 

    else: 
     print('Is not a right triangle') 

Der Grund für mehrere Bedingungen sein, weil man nie wissen, ob die Benutzer gibt Hypotenuse für a oder b oder c.

0

In right_tri Funktion benötigen Sie eine return-Anweisung zu verwenden, so wie

def right_tri(a, b, c): 
     if (b**2 + c**2 == a**2): 
      return 'Is a right triangle' 
     else: 
      return 'Is not a right triangle'