2016-09-16 13 views
0

この最後のものを除いて、このエラーメッセージが表示されています。なぜ、私の先生が私たちに与えたx1とx2の正確な公式を使用しているのか分かりません私はエラーを把握することができません。数学領域誤差二次方程式

# Quadratic Formula 

# Import the math library to use sqrt() function to find the square root 
import math 

print("This equation solves for x in the binomial equation: ax^2 + bx + c = 0") 

# Get the equation's coefficients and constant from the user 
a = 0 
while a == 0: 
    try: 
     a = float(input("Enter the first coefficeint, or a, value: ")) 
     if a == 0: 
      raise ValueError 
    except ValueError: 
     print("The value you entered is invalid. Zero is not allowed") 
    else: 
      break 
while (True): 
    try: 
     b = float(input("Enter the Second coefficeint, or b, value: ")) 
    except ValueError: 
      print("The value you entered is invalid. only real numbers") 
    else: 
      break 
while (True): 
    try: 
     c = float(input("Enter the last coefficeint, or c, value: ")) 
    except ValueError: 
      print("The value you entered is invalid. only real numbers") 
    else: 
      break 
d = (b**2) - (4*a*c) 
x1 = ((-b) + math.sqrt(b**2 - 4*a*c))/(2*a) 
x2 = ((-b) - math.sqrt(b**2 - 4*a*c))/(2*a) 
print("X is: ", x1, " or ", x2) 
do_calculation = True 
while(do_calculation): 
     another_calculation = input("Do you want to perform another calculation? (y/n):") 
if(another_calculation !="y"): 

この式は二項式のxについて解く:斧^ 2 + BX + C = 0 最初coefficeint、または、値を入力:2 は第coefficeintを入力するか、bは、値:3 最後coefficeint、またはc、値を入力します。4 トレースバック(最新の呼び出しの最後): ×1 =((-b)で ファイル "/Users/cadenhastie/Downloads/Jtwyp6QuadraticEqnCalc/improvedquadraticeqncalc.py"、ライン34を、 +(2 * a) ValueError:数学的なドメインエラー

+0

編集 –

+0

はすぐそこに問題を解決するかもしれない、あなたのインデントを修正してください。 – elethan

+0

計算を行う前に 'd'が正であるかどうか確認してください。 dが負であれば、放物線についてどのような意味があるのか​​考えてみてください。 –

答えて

0

あなたはを持っています対応するexceptステートメントがないステートメント一般的にはwhile True:を避けるべきです。コード内のインデントには多くの問題があります

エラー処理でユーザーから1つの値を取得するには、以下のコードを実行します。その後、ユーザーが入力する各係数に対してこれを繰り返します。ある時点でこれを関数内にラップして、重複したコードを書かないようにしたいと思うかもしれません。完全なエラースタックトレースを持つ

a = 0 while a == 0: try: a = float(input("Enter the first coefficeint, or a, value: ")) if a == 0: raise ValueError except ValueError: print("The value you entered is invalid. Zero is not allowed")

+0

ありがとうございました。これはとても新しく、オンラインクラスですので、できる限り自分自身を教えようとしています。これは多くの助けとなり、後でエラーを理解しやすくなりました。プログラムが実行されていますが、マイナーな欠陥があります。 – Konabluest

+0

申し訳ありませんが、むしろ鈍いです。コードを小さな断片に分割して、各断片をまとめて作業してみましょう。あなたはそこに着くでしょう! –

+0

問題はありませんが、単純なことを説明するのは難しいことが分かりました。構文エラーを解決しましたが、プログラムは何らかの理由で2番目と3番目の係数を求める問題がありました。私は行く! – Konabluest