Как красиво вывести квадратное уравнение в консоль? Написал простой код для решения квадратных уравнений. Под конец решил в качестве последнего штриха написать перед началом решения вывод итогового уравнения на экран, спустя несколько минут понял, что не понимаю, как это реализовать. Во-первых квадратное уравнение может быть таким 2x^2+5x-4 или таким -2.1x^2-4.5x+8.3 (числа перед x могут быть как отрицательными так и положительными, а также дробными или целыми). Итак, кратко вопрос такой: как сделать вывод гибким и красивым? Не хочется видеть, при вводе только целочисленных значений что-то вроде 2.0x^2+5.0x-4.0 = 0 и прочее. Код под спойлером. Кодimport math
while True:
a = float(input('Введите a: '))
b = float(input('Введите b: '))
c = float(input('Введите c: '))
d = b ** 2 - 4 * a * c
print("\nВычисляем дискриминант...")
print("Дискриминант равняется", d)
if d == 0:
print("\nДискриминант равен 0")
print("x =", -b/(2*a))
elif d < 0:
print("\nДискриминант меньше 0, решений нет")
else:
x1 = (-b - math.sqrt(d)) / (2*a)
x2 = (-b + math.sqrt(d)) / (2*a)
print("\nВычисляем корни...")
print("\nПервый корень равен", x1)
print("Второй корень равен", x2)
while True:
print("\nХотите решить ещё одно уравнение?")
answer = input('Y/n(help - справка по командам) ')
if answer == 'Y':
break
elif answer == 'n':
exit()
elif answer == 'help':
print(open('help.txt', 'r').read())
else:
print("\nВведите Y или n (help - справка по командам)")

21 Авг 2019 в 06:07
189 +1
0
Ответы
1

Вы можете создать функцию, которая будет форматировать вывод уравнения в зависимости от коэффициентов и упрощать его, чтобы он выглядел красиво. Вот как это можно сделать в вашем случае:

def format_equation(a, b, c):
def format_float(num):
if num == int(num):
return int(num)
return num
equation_str = ""
if a != 0:
if a == 1:
equation_str += "x^2"
elif a == -1:
equation_str += "-x^2"
else:
equation_str += f"{format_float(a)}x^2"
if b != 0:
if b == 1:
equation_str += " + x" if equation_str else "x"
elif b == -1:
equation_str += " - x" if equation_str else "-x"
elif b > 0:
equation_str += f" + {format_float(b)}x"
else:
equation_str += f" - {format_float(-b)}x"
if c != 0:
if c > 0:
equation_str += f" + {format_float(c)}"
elif c < 0:
equation_str += f" - {format_float(-c)}"
return equation_str + " = 0"
a, b, c = 2, 5, -4
equation = format_equation(a, b, c)
print(equation) # Вывод: 2x^2 + 5x - 4 = 0

Вы можете использовать эту функцию в своем коде, чтобы вывести красивое уравнение перед его решением.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир