Что не работает мой код Python?

мой код дает мне некоторые ошибки Traceback (последний последний вызов): файл «python», строка 7, в ValueError: ошибка математического домена

  import math
  a= 3
  b= 5
  c= 2
  d= b^2 -4*a*c
  x1 = math.sqrt(d)
  print(x1)

person Manil Puri Manil    schedule 18.11.2017    source источник
comment
Я думаю, что b^2, вероятно, должно быть b**2   -  person Aran-Fey    schedule 18.11.2017
comment
^ является побитовым xor, вы хотите использовать ** для возведения в степень.   -  person Abhijith Asokan    schedule 18.11.2017
comment
Возможный дубликат ValueError: ошибка математического домена   -  person Aran-Fey    schedule 18.11.2017
comment
Итак, вы в курсе - почему этот код не работает? - это определенная опция закрытия голосования при переполнении стека сама по себе (люди могут проголосовать за закрытие вопроса, чтобы на него нельзя было ответить, если вопрос не отредактирован в соответствии с правилами сайта). Ваш заголовок бесполезен для других, которые могут столкнуться с той же проблемой.   -  person roganjosh    schedule 18.11.2017


Ответы (2)


d отрицательна, когда нет реальных решений, поэтому ее квадратное значение также не является реальным:
Также обратите внимание, что b^2 не является bsquared, это b xor 2. для b square используйте b**2 или b*b

import math

a = 3
b = 5
c = 2

d = b**2 - 4*a*c      # Attention, b^2 is not b square, use b**2
if d > 0:
    x1 = math.sqrt(d)
    print(x1)
else:
print("there are no real roots")
person Reblochon Masque    schedule 18.11.2017

Ваш d равен -17 (скорее всего, вы хотели использовать ** вместо ^)

Что такое корень отрицательного числа?

Это то, о чем говорит исключение

person Nabin    schedule 18.11.2017