2017-10-16 7 views
-1
a = input('enter a ') 
b = input('enter b ') 
c = input('enter c ') 


def is_right_angled(a, b, c): 
    a, b, c = sorted([a, b, c])    #sort inputs smallest to largest 
    pathag=(a * a + b * b - c * c) #< 0.1 #a ^2 + b ^2 - c ^2 should = 0 approx 

    if pathag<0.1:       # test "pathag" to to see if close 
    print ("This is a right triangle") 
    else:         # if "pathag" not close, not "right" 
    print ("This is NOT a right triangle") 

    return abs(a * a + b * b - c * c) < 0.1 
+0

Quelles sont vos entrées? –

+4

Vous avez défini une fonction, mais je n'y vois aucun appel. Ce que vous avez posté doit entrer 3 valeurs, puis tomber au fond et quitter sans rien faire d'autre. –

+0

En outre, juste en étant défensif - il y a probablement une erreur de type à venir si vous appelez la fonction avec 'a',' b', et 'c'. Les lire depuis 'input' produit des chaînes; vous devez les changer en type numérique. Vous pouvez le faire en disant, par exemple, 'a, b, c = float (a), float (b), float (c)'. –

Répondre

0

Il pourrait y avoir un questions couple spécifiques à la fonction d'impression ne fonctionne pas (je pense que vous pouvez également revoir certaines des hypothèses logiques au volant de votre fonction is_right_angled.)

1) Une fonction d'entrée crée une variable de chaîne. Vous devrez convertir explicitement ceci en une variable int ou float pour que votre fonction fonctionne correctement avec ces variables.

a = float(input('enter a ')) 

2) Vous n'appelez pas réellement la fonction dans le code ci-dessus. Assurez-vous de l'appeler ou le code ne fonctionnera pas. Ajoutez ceci à la fin de votre script:

is_right_angled(a, b, c) 
+0

Les entrées sont basées sur l'utilisateur. Je les saisis pour tester l'algorithme et voir si la déclaration correcte s'imprime (si/quand j'apprends à le faire fonctionner). I.E .: 3,4,5 devrait rendre "Est un triangle rectangle" –