Как красиво вывести квадратное уравнение в консоль? Написал простой код для решения квадратных уравнений. Под конец решил в качестве последнего штриха написать перед началом решения вывод итогового уравнения на экран, спустя несколько минут понял, что не понимаю, как это реализовать. Во-первых квадратное уравнение может быть таким 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

21 Авг 2019 в 06:07
206 +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 Апр 2024 в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир