Проблемы, связанные с калькулятором квадратных уравнений на Python

#python-3.x

#python-3.x

Вопрос:

Я пытаюсь закодировать калькулятор, который вычисляет квадратные уравнения, но я продолжаю получать синтаксическую ошибку в следующей строке:

 print((int(-b) math.sqrt(dk))/(2*int(a))
  

Вот весь код:

 import math
a=input("Sisestage ruutlige: ")
b=input("Sisestage lineaarliige: ")
c=input("Sisestage vabaliige: ")
dk=((int(b)*2)-4*int(a)*int(c))

if  dk < 0:
    print("Lahendid puuduvad")'


if  dk > 0:
    print((int(-b)-math.sqrt(dk))/(2*int(a))
    print((int(-b) math.sqrt(dk))/(2*int(a))

if  dk == 0:
    print(int(b)/(2*int(a))
  

Комментарии:

1. Опечатка: ((int(-b) math.sqrt(dk))/(2*int(a)) имеет на одну открывающую скобку больше, чем close

2. Кроме того, print("Lahendid puuduvad")' имеет висячий апостроф. Не уверен, что это ошибка в вашем реальном коде или вы случайно добавили ее в вопрос здесь.

3. Также также: просто преобразуйте в int , когда вы принимаете входные данные. Это проще и эффективнее, чем многократный вызов int(...) для выполнения преобразования.

Ответ №1:

проблема в ваших скобках. Вам не хватает скобки в инструкции print.

 
import math
a=input("Sisestage ruutlige: ")
b=input("Sisestage lineaarliige: ")
c=input("Sisestage vabaliige: ")
dk=((int(b)**2)-4*int(a)*int(c))

if  dk < 0:
    print("Lahendid puuduvad")


if  dk > 0:
    print((int(-b)-math.sqrt(dk))/(2*int(a)))
    print((int(-b) math.sqrt(dk))/(2*int(a)))

if  dk == 0:
    print(int(-b)/(2*int(a)))
  

При вычислении вашего дискриминанта вы должны использовать ** для квадрата вместо единственной звездочки. Кроме того, в случае, если дискриминант равен нулю, вы имеете отрицательный знак.

Остальное в порядке.

Кроме того, просто предложение, но вы можете сделать ввод int прямо там, где вы берете его от пользователя. Таким образом, код будет выглядеть чище.

 python

import math
a=int(input("Sisestage ruutlige: "))
b=int(input("Sisestage lineaarliige: "))
c=int(input("Sisestage vabaliige: "))
dk=b**2-4*a*c

if  dk < 0:
    print("Lahendid puuduvad")


if  dk > 0:
    print((-b-math.sqrt(dk))/(2*a))
    print((-b math.sqrt(dk))/(2*a))

if  dk == 0:
    print(-b/(2*a))