Форум сайта python.su
0
#!/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)))
Отредактировано Alex9 (Фев. 13, 2013 16:55:33)
Офлайн
568
Может я неправильно понял, но как у Вас
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:
Офлайн
0
Спасибо, это от предыдущей задачи осталось. Отредактировал. Можете подсказать, есть ли сейчас ошибки в коде ?
Офлайн
568
Alex9Не стесняйтесь, показывайте.
Отредактировал.
Офлайн
Видимо ТС отредактировал 1й пост с кодом и там просит еще раз посмотреть.
Офлайн
568
В коде стартового поста ничего не изменилось.
Офлайн