I started Python 2-3 months ago, but I really haven't done much since then, just little things. Yesterday, I wrote this simple quadratic equation solver. You can give \$a, b\$ and \$c\$ any value, but they must all be integers.
I really want to know what you think about it.
from math import sqrt
while True:
try:
a = int(input("\nEnter a : "))
b = int(input("Enter b : "))
c = int(input("Enter c : "))
except:
print("You can only enter integers")
continue
if a > 0:
sgn_a = ""
if b > 0:
sgn_b = "+"
else:
sgn_b = "-"
if c > 0:
sgn_c = "+"
else:
sgn_c = "-"
else:
sgn_a = "-"
if b > 0:
sgn_b = "+"
else:
sgn_b = "-"
if c > 0:
sgn_c = "+"
else:
sgn_c = "-"
if a == 0:
part_a = ""
elif a == 1:
part_a = sgn_a+"x"+str(chr(0x00B2))
else:
part_a = sgn_a+str(abs(a))+"x"+str(chr(0x00B2))
if b == 0:
part_b = ""
elif b == 1:
if a != 0:
part_b = sgn_b+"x"
else:
part_b = "x"
else:
if a != 0:
part_b = sgn_b+str(abs(b))+"x"
else:
part_b = str(abs(b))+"x"
if c == 0:
if a == 0 and b == 0:
part_c = "0"
else:
part_c = ""
elif a == 0 and b == 0:
part_c = str(abs(c))
else:
part_c = sgn_c+str(abs(c))
print("\nYour equation is %s%s%s = 0\n" %(part_a,part_b,part_c))
if a != 0 and b != 0 and c != 0:
D = b**2-(4*a*c)
if D > 0:
x_1 = ((-b+sqrt(D))/2*a)
x_2 = ((-b-sqrt(D))/2*a)
print("X1 = %f\nX2 = %f" %(x_1,x_2))
elif D == 0:
x = -b/(2*a)
print("X1 = X2 = %d" %x)
elif D < 0:
x_1 = ((-b+sqrt(-D))/2*a)
x_2 = ((-b-sqrt(-D))/2*a)
print("X1 = %f%s\nX2 = %f%s" %(x_1,"i",x_2,"i"))
elif a == 0 and b != 0 and c != 0:
x = -c/b
if c % b != 0:
print("X = %d/%d or %f" %(-c,b,x))
else:
print("X = %d" %x)
elif a != 0 and b == 0 and c != 0:
if -c > 0:
x_1 = sqrt(-c/a)
x_2 = -x_1
print("X1 = %f\nX2 = %f" %(x_1,x_2))
else:
x_1 = sqrt(c/a)
x_2 = -x_1
print("X1 = %f%s\nX2 = %f%s" %(x_1,"i",x_2,"i"))
elif a != 0 and b != 0 and c == 0:
x_2 = -b/a
if b % a != 0:
print("X1 = 0\nX2 = %d/%d or %f" %(-b,a,x_2))
else:
print("X1 = 0\nX2 = %d" %x_2)
elif a == 0 and b != 0 and c == 0:
print("X = 0")
elif a == 0 and b == 0:
if c != 0:
print(c,"!= 0")
else:
print("0 = 0. DUH!")