2016-03-18 3 views
-2

Ich habe versucht, ein Programm zu schreiben, das bestimmt, ob drei Zeilen ein Dreieck bilden können oder nicht. Der Code, den ich geschrieben habe, funktioniert jedoch nicht und ich kann nicht feststellen, warum. Es produziert derzeit ‚Nein‘ für alle Eingänge (Hinweis: Die größte Seite kleiner sein muss als die Summe der beiden anderen Seiten, um ein Dreieck zu machen).Warum funktioniert dieser Code nicht, um Ja oder Nein zu beantworten, wenn drei Dreiecksseiten eingegeben werden?

Mein Code:

def is_triangle(a,b,c): 
    if a >= b and a >= c and (b + c) >= a: 
     return print('yes') 
    elif b >= c and b >= a and (a + c) >= b: 
     return print('yes') 
    elif c >= a and c >= b and (a + b) >= c: 
     return print('yes') 
    else: 
     return print('no') 


def input_triangle(): 
    a = input('first side?') 
    b = input('second side?') 
    c = input('third side?') 
    return is_triangle(a,b,c) 

input_triangle() 
+0

Wahrscheinlich müssen Sie Ihre 'Eingabe' in Zahlen verwandeln, mit' int (Eingabe ("erste Seite?")) 'Oder' float (Eingabe ("erste Seite?")) '. Sonst vergleicht es die Strings – dwanderson

Antwort

0

int oder float die input Werte; Zur Zeit führen Sie einen String-Vergleich und eine String-Verkettung durch, anstatt Ihre Eingaben zu matchen.

a = int(input("first side?")) 
## OR 
a = float(input("first side?")) 

Wenn es mit Streichern zu tun, sagen halbes Argumente gibt den Benutzer 5, 4, 3, was natürlich gültig sein sollte. Ihr Test tut: "5" > "4" and "4" > "3" (gut so weit ...) und schließlich and "43" > "5" die a) nicht was Sie wollen und b) falsch (es geht Zeichen für Zeichen, und "4" ist nicht> "5").