В питоне x ^ 2, может быть x ** 2, x * x или pow (x, 2). Другие дали вам хорошие предложения, и я хотел бы добавить несколько. Квадратичное уравнение: ax ^ 2 + bx + c = 0 (отрегулируйте так, чтобы уравнение равнялось нулю!) Имеет полиномиальные члены ax ^ 2, bx, c;чьи коэффициенты являются а, б. И c был постоянным членом. тогда квадратичные формулы: (-b + sqrt (b ^ 2 - 4 * a * c)) / 2a;Решает для x.
Все вышеперечисленное правильно отображается в вашем коде. Однако у вас возникнут проблемы, если решения останутся в наборе комплексных чисел {C}.
Это можно легко решить, измеряя"дискриминант".
Дискриминант имеет вид b ^ 2 - 4ac и
- , если дискриминант = 0, тогда существует только одно решение
- , если дискриминант>0, то есть два реальных решения
- , если дискриминант <0, то есть два комплексных решения </li>
Учитывая приведенные выше условия, код должен выглядеть так:
import math
print ("Quadratic Equation Calculator")
a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))
discriminant = pow(b, 2) - 4.0 * a * c
if discriminant == 0:
root1 = root2 = (-1 * b) / (2 * a)
elif discriminant < 0:
root1 = ((-1 * b) - math.sqrt(-discriminant) * 1j) / (2 * a)
root2 = ((-1 * b) + math.sqrt(-discriminant) * 1j) / (2 * a)
else:
root1 = ((-1 * b) - math.sqrt(discriminant)) / (2 * a)
root2 = ((-1 * b) + math.sqrt(discriminant)) / (2 * a)
print (root1)
print (root2)
Подобные ответы SO: https://stackoverflow.com/a/49837323/8247412
Ниже я изменил код в пользу программирования на pythonic, так как numpy может найти корни полиномиальных (квадратичных и высших порядков) уравнений с мастерством. numpy.roots
import numpy as np
print ("Quadratic Equation Calculator")
a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))
coeffs = [a, b, c] # or d, e and so on..
roots = np.roots(coeffs)
print (roots)