Найти - Пользователи
Полная версия: Решение квадратного уравнения с действительными коэффициентами включая 0
Начало » Python для новичков » Решение квадратного уравнения с действительными коэффициентами включая 0
1
Alex9
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys, math, cmath
 
if len(sys.argv) != 4:
    sys.exit(u"Usage: %s a b c" % sys.argv[0])
print u"Square equation: %s · xІ + %s · x + %s = 0" % tuple(sys.argv[1:])
a = float(sys.argv[1])
b = float(sys.argv[2])
c = float(sys.argv[3])
if a == 0 and b == 0 and c == 0:
 sys.exit(u"C")
if b == 0 and c == 0:
 sys.exit(u"Root: 0")
if a == 0 and c == 0:
 sys.exit(u"Root: 0")
if a == 0 and b == 0:
 sys.exit(u"No root")
if c == 0:
 print u"Root1: 0"
 sys.exit(u"Root2: " + str(- b / a))
if b == 0:
 if c > 0:
  print u"Root1: " + str(math.sqrt(- c / a))
  sys.exit(u"Root1: " + str(- math.sqrt(- c / a)))
 else:
  print u"Root1: " + str(cmath.sqrt(- c / a))
  sys.exit(u"Root1: " + str(- cmath.sqrt(- c / a)))
if a == 0:
 sys.exit(u"Root:" + str(- c / b))
d = b * b - 4 * a * c
if d < 0:
 print u"Root 1:" + str((- b + cmath.sqrt(d)) / (2 * a))
 sys.exit(u"Root2:" + str((- b - cmath.sqrt(d)) / (2 * a)))
else: 
 print u"Root 1:" + str((- b + math.sqrt(d)) / (2 * a))
 sys.exit(u"Root2:" + str((- b - math.sqrt(d)) / (2 * a)))
Вот мой код. У меня при комплексных корнях выдает ошибку.
FishHook
Может я неправильно понял, но как у Вас
if any(float(coeff) == 0 for coeff in sys.argv[1:]):
        sys.exit(u"Coefficients must be non-zero")
и
if b == 0 and c == 0:
В чем смысл проверять на нули если нулей быть не может?
Alex9
Спасибо, это от предыдущей задачи осталось. Отредактировал. Можете подсказать, есть ли сейчас ошибки в коде ?
FishHook
Alex9
Отредактировал.
Не стесняйтесь, показывайте.
dimy44
Видимо ТС отредактировал 1й пост с кодом и там просит еще раз посмотреть.
FishHook
В коде стартового поста ничего не изменилось.
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