#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))
имеет на одну открывающую скобку больше, чем close2. Кроме того,
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))