2016-07-11 9 views
0

私はコーディングの初心者です。私はPythonを使用して2次方程式の電卓を作成しようとしています。ifステートメントでブール演算子を使用する

while True: 
    print(""" 
     Welcome to DJIGURDA Supreme Quadratic Calculator 
     Please enter three values in the form of /'ax^2 + bx +c/'. """) 
    a = input("a (first constant)") 
    b = input("b (second constant)") 
    c = input("c (third constant)") 

    if not a.isalpha and not b.isalpha and not c.isalpha: 
     d = (float(b)**2) - (4 * float(a) * float(c)) 
     print(d) 
     if d >= 0: 
      x_1 = (float(-b) + (d**0.5))/(2*float(a)) 
      x_2 = (float(-b) - (d**0.5))/(2*float(a)) 
      print("The first variable is equal to %s./n The second variable is equal to %s")[str(x_1), str(x_2)] 
     else: 
      print("No real roots.") 
    else: 
     print("Please enter numerical values.") 

このコードでは、「数値を入力してください」と返されます。コードが最初の "if"ステートメントを通過しないのはなぜですか?

+0

ブラケット。それぞれのブール 'if'セクションの周りに'() 'を入れる必要があります。 – Tim

+0

'(a.isalpha()ではなくif(b.isalpha()ではない)、(c.isalphaではなく)' – Tim

+7

'a.isalpha()'を呼び出す必要があります。 –

答えて

8

あなたはこれらのメソッドを呼び出していない:Pythonでメソッドまたは関数がtruthy値があること

c.isalpha() 
#  ^^ 

注:

>>> bool(''.isalpha) 
True 

のでnot a.isalpha(その他)は、常にFalseと評価されます条件は決して通過しません

+0

それは、私が数値入力が必要なので、私がやろうとしていることです。 –

0

a.isalphaの周囲に角括弧を入れる必要があります。このa.isalpha()のように、メソッドを呼び出す前にdわからない。あなたは私が私の前に道を持っているように、私の答えを受け入れて、彼らを受け入れないでくださいBのためにそれをしなければならないとCだけでなく

UPDATE私はちょうど実現申し訳

誰かこれに答えています!

関連する問題