2017-03-15 11 views
-1

私が話している正接は逆正接ではありませんが、正三角形の角度の長さを解くことができる接線です。これまでは、反対側の脚を隣接する長さで分割することができました。何らかの理由で接線の問題

#this is for a 6,8, 10 triangle! 
#y is 8, x is 6 
#if you look on the table, 1.3333 is near 53 degrees 

if(a==b): 
print("This is a right triagle b/c the legs are equal to the hypotnuse!") 

tan = input("Would you like to find the tangent of angle A? : ") 
if(tan=="Yes"): 
    print("Lets do this!") 
    #works with 6,8,10 triangle for now! 
    print(y,"/",x) 
    tan = (str(float(y)/float(x))) 
    round(float(tan),3) 
    print(round(float(tan),3)) 
    print("Looking for rounded tan in table!") 
    #remember that 1.333 is near 53 degrees (see on trig table) 
    if(tan == 1.333): 
     print("<A == ", 53) 
     print("<B == 90") 
     c = str(int(53)+int(90)) 
     c2 = str(int(180)-int(c)) 
     print("<C == ",c2) 
    else: 
     print("Nope") 

elif(tan=="No"): 
    print("See you!") 
    exit(0); 

、プログラムは、elseステートメントを使用して、いやと言うだろう。助けてください!あまりにも前もって感謝しています。

答えて

2

丸め後にを更新していません。 floatオブジェクトはは不変であり、roundは数値型を返すことに注意してください。丸めた後にtanのインプレース更新はありません。

あなたはtanに戻ったフロートオブジェクトを再バインドするための割り当てを必要とする:

tan = round(float(tan), 3) 
1

複数の問題がここにあります

  • tanは文字列なので、浮動小数点を等しくすることはありません数。一度だけtanに割り当てられることに注意してください。丸め演算の出力は印刷されるか破棄されますが、tanには格納されません。あなたは==と浮動小数点数と比較

    tan = round(float(y)/float(x), 3) 
    
  • :あなたは、おそらくこのような何かをしたいです。 決して浮動小数点数と等しいかどうかを確認する必要があります!

    if abs(tan - 1.333) < 1e5: 
    
  • また:あなたは、文字列(例えば、インデックスを操作する必要がない限り、文字列には何も変換しないでくださいあなたは代わりに常に2つの数字がどれだけ近いかを確認する必要があります(あなたがリテラルとして割り当てる場合を除きます。)それ)。なぜPython math関数を使用しないのですか?