Reputation: 17
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
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
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