2017-10-16 18 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

あなたの入力は何ですか? –

+4

関数を定義しましたが、呼び出しはありません。あなたが掲示したものは、3つの値を入力し、次に何もせずに一番下に落ちて終了します。 –

+0

また、防御的であるだけで、 'a'、' b'、 'c'で関数を呼び出すと型エラーが発生する可能性があります。 'input'からそれらを読み取ると、文字列が生成されます。それらを数値型に変更する必要があります。たとえば、 'a、b、c = float(a)、float(b)、float(c) 'と言って、これを行うことができます。 –

答えて

0

を動作しない機能していない印刷機能に固有のカップルの問題があるかもしれません(私はあなたにも、あなたのis_right_angled機能を駆動する論理的な仮定の一部を再訪したいかもしれないと思う。)

1)入力関数は文字列変数を作成します。これらの変数で関数が正しく動作するためには、これを明示的にintまたはfloat変数に変換する必要があります。

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

2)上記のコードで実際に関数を呼び出すわけではありません。それを呼び出すか、コードが実行されないようにしてください。これをスクリプトの最後に追加してください:

is_right_angled(a, b, c) 
+0

入力はユーザベースです。アルゴリズムをテストし、正しい文が印刷されているかどうかを確認するために入力します。 I.E。:3,4,5は、 "直角三角形である" –

関連する問題