Vladimir K. Bobyr
Vladimir K. Bobyr

Reputation: 17

Using boolean operators in an if statement

I'm a beginner in coding, and I'm trying to create a quadratic equation calculator using python.

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.")

This code keeps returning "Please enter numerical values." Why is the code not making it past the first "if" statement?

Upvotes: 0

Views: 89

Answers (2)

doodle911
doodle911

Reputation: 65

You must put brackets around the a.isalpha - like this a.isalpha () this calls the method whereas before it didn't. You must do it for b and c as well

UPDATE

Sorry I just realised someone has answered this like I have way before me, please don't accept my answer and accept theirs!

Upvotes: 0

Moses Koledoye
Moses Koledoye

Reputation: 78546

You're not calling those methods:

c.isalpha()
#        ^^

Note that a method or function in Python has a truthy value:

>>> bool(''.isalpha)
True

So not a.isalpha (and others) will always evaluate to False and the condition will never pass

Upvotes: 8

Related Questions