Найти - Пользователи
Полная версия: Проблема с if else
Начало » Python для новичков » Проблема с if else
1 2
paraffine9208
Добрый вечер!
Нужно реализовать нахождение корней квадратного уравнения.

Есть код:
a=float(raw_input('vvedute pervoe 4uslo: '))
b=float(raw_input('vvedute 2-e 4uslo: '))
c=float(raw_input('vvedute 3-e 4uslo: '))
D = b**2 - 4*a*c
if D > 0:
	x1 = (-b + (b**2 - 4*a*c))/2*a
else:
	x1 = kopneu_net
print x1
raw_input()

Ошибка в if-е, но не могу найти её.
adray
x1 = 'корней нет'
paraffine9208
Спасибо!
sergeek
D = b**2 - 4*a*c
if D > 0:
	x1 = (-b + (b**2 - 4*a*c)**0.5)/2*a
else:
	x1 = kopnu_ectb_npocTo_OHu_KoMnJleKcHbIe
print x1
raw_input()
adray
Это не единственная ошибка
  • корень считается неверно
  • в случае D < 0 лучше бросать исключение, а еще лучше - считать в комплексных числах
paraffine9208
Как считать в комплексных числах?
adray
paraffine9208
Как считать в комплексных числах?
import cmath
cmath.sqrt(D) #результат - комплексное число
paraffine9208
Не понял. В моей задаче как применить?
sergeek
x1 = (-b + cmath.sqrt(b**2 - 4*a*c))/2*a
py.user.next
paraffine9208
Как считать в комплексных числах?
>>> d = -3.5
>>> c = d ** 0.5
>>> c
(1.1455143524174501e-16+1.8708286933869707j)
>>>
во втором питоне не работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB