Похоже, вы пытаетесь решить квадратное уравнение.Хотя, похоже, что на этот вопрос уже есть принятый ответ, я хотел бы добавить собственный дополнительный код для устранения некоторых возможных ошибок.
Похоже, что у вас возникают ValueError: math domain error
проблемы, поскольку выпередают "недопустимые" значения вашим a, b, c
переменным.Это связано с тем, что python не обрабатывает получение квадратного корня из отрицательных чисел с math.sqrt
. Однако , если вы хотите получить и воображаемые решения, я бы порекомендовал вам использовать встроенную поддержку python для обработки комплексных чисел и также использовать cmath.sqrt
.Я предлагаю вам рассчитать и сохранить discriminant
(то есть материал под знаком квадратного корня) как отдельную переменную.Ваш решающий код может выглядеть следующим образом (обратите внимание, что я также решаю для обоих решений, поскольку в квадратной формуле необходимо учитывать символ ±):
import math
import cmath#complex number math module!!!
def solve_quadratic_equation(a, b, c):
disc = b**2 - (4*a*c)#disc = discriminant
sqrt_disc = cmath.sqrt(disc) if disc < 0 else math.sqrt(disc)#ternary if
pos_answer = (-b + sqrt_disc)/(2*a)
neg_answer = (-b - sqrt_disc)/(2*a)
return (pos_answer, neg_answer)
def get_input():
a = int(input("Enter a: "))
b = int(input("Enter b: "))
c = int(input("Enter c: "))
return (a, b, c)
if __name__ == "__main__":
a, b, c = get_input()
answer = solve_quadratic_equation(a, b, c)
print(answer)