Форум сайта python.su
py.user.next
Сделай так, чтобы при вычислении квадратного уравнения оно писало один вывод, а при вычислении линейного уравнения оно писало другой вывод.
# ax*x + bx +c = 0 A = int(input('A = ')) B = int(input('B = ')) C = int(input('C = ')) print ('a =', A,'b =', B,'c =', C) if A != 0: # квадратное уравнение dis = B**2 - 4*A*C if dis > 0: x1 = (-B + dis**0.5) / (2*A) x2 = (-B - dis**0.5) / (2*A) result = 'два корня' elif dis == 0: x1 = (-B) / (2*A) x2 = x1 result = 'один корень' else : # дискриминант меньше нуля x1 = 0 x2 = 0 result = 'корней нет' print ('x1 = {:.2f}'.format(x1), 'x2 = {:.2f}'.format(x2)) elif A == 0: # линейное уравнение x = (-C) / B result = 'один корень' print ('x = {:.2f}'.format(x)) print (result)
Офлайн
medusa_01И у тебя получилось что? Что если у квадратного уравнения корней нет действительных, то ты их выводишь и они равны нулю оба. Корней нет и корни равны нулю - это разные вещи, потому что ноль и пустое множество - это разные вещи.
Вот, что у меня получилось.
medusa_01Это можно в одной строке выводитьprint ('x1 = {:.2f}'.format(x1), 'x2 = {:.2f}'.format(x2))
print('x1 = {:.2f}, x2 = {:.2f}'.format(x1, x2))
Отредактировано py.user.next (Дек. 25, 2020 00:41:07)
Офлайн
py.user.next
И у тебя получилось что? Что если у квадратного уравнения корней нет действительных, то ты их выводишь и они равны нулю оба. Корней нет и корни равны нулю - это разные вещи, потому что ноль и пустое множество - это разные вещи.
... # квадратное уравнение dis = B**2 - 4*A*C if dis > 0: x1 = (-B + dis**0.5) / (2*A) x2 = (-B - dis**0.5) / (2*A) result = 'два корня' [b]Вывод результата[/b] elif dis == 0: x1 = (-B) / (2*A) x2 = x1 result = 'один корень' [b]Вывод результата[/b] else : # дискриминант меньше нуля x1 = 0 x2 = 0 result = 'корней нет' [b]Вывод результата[/b] ...
Офлайн
medusa_01Сначала проводишь вычисления, потом делаешь один вывод. Но каждый кусок вывода должен выводить свой исход. Если там два корня получилось, то вывод должен вывести два корня. Если там один корень получился (в квадратном уравнении, а это не совсем уж и один корень), то вывод должен вывести этот “один” корень, уточнив, что корней там два и они совпадают. Если там после вычисления оказалось, что нет действительных корней, то вывод должен вывести об этом информацию (то есть он не должен выводить, что там x1 и x2 есть).
Т.е. я не дописал выводы или совсем ничего не дописал?
medusa_01Не, это идёт смешивание вычислений и вывода.
Я должен сделать вывод результата в этих местах
Отредактировано py.user.next (Дек. 25, 2020 08:44:09)
Офлайн
ввод данных
A = int(input('A = ')) B = int(input('B = ')) C = int(input('C = '))
dis = B**2 - 4*A*C if dis > 0: x1 = (-B + dis**0.5) / (2*A) x2 = (-B - dis**0.5) / (2*A) result = f'два корня x1 = {x1},x2 = {x2}' elif dis == 0: x1 = (-B) / (2*A) x2 = x1 result = f'один корень x = {x1}' else : # дискриминант меньше нуля result = 'корней нет'
print ('a =', A,'b =', B,'c =', C) print (result)
Офлайн
py.user.next
Пробуй ещё.
Офлайн
xam1816
смени задачу
Офлайн
Продолжай вот эту фигню делать дальше. Ты результат получил? Значит, ты можешь его использовать. Ты по нему можешь определить, как тебе выводить.
Вот смотри. Программа работает и выдаёт результат. А зачем нам этот результат? Этот результат нам нужен для того, чтобы его использовать. Программа отработала - она больше не нужна. Нужен результат из неё.
medusa_01Вот этот кусок - это как бы целая программа. Такая программа в программе. И результат работы этой программы - это переменная result. Когда ты результат из программы получил (большая это программа, маленькая это программа или это программа в программе), ты можешь этот результат ис-поль-зо-вать, потому что ты для этого его и получаешь - чтобы его использовать.dis = B**2 - 4*A*C if dis > 0: x1 = (-B + dis**0.5) / (2*A) x2 = (-B - dis**0.5) / (2*A) result = 'два корня' elif dis == 0: x1 = (-B) / (2*A) x2 = x1 result = 'один корень' else : # дискриминант меньше нуля x1 = 0 x2 = 0 result = 'корней нет'
Отредактировано py.user.next (Дек. 26, 2020 00:29:43)
Офлайн