Ответы пользователя по тегу Математика
  • Как красиво вывести квадратное уравнение в консоль?

    @javedimka
    Хочу сока
    Если хочется оставить принудительное форматирование во float, то можно сделать так:
    def quadratic_eq_formatter(nums):
        num_f = {1: '{:+.0f}', 0: '{:+.1f}'}
        eq = '{}x^2{}x{}=0'.format(*(num_f[x.is_integer()] for x in nums))
        return eq.format(*nums) if nums[0] < 0 else eq.format(*nums)[1:]
    
    nums = (a, b, c)
    print(quadratic_eq_formatter(nums))

    print(quadratic_eq_formatter([-3.0, -2.7, 7.0]))
    '-3x^2-2.7x+7=0'
    print(quadratic_eq_formatter([2.0, 5.0, -4.0]))
    '2x^2+5x-4=0'
    print(quadratic_eq_formatter([-2.1, -4.5, 8.3]))
    '-2.1x^2-4.5x+8.3=0'

    А чтобы уж вообще красиво было, то ^2 в
    eq = '{}x^2{}x{}=0'.format(*(num_f[x.is_integer()] for x in nums))

    можно поменять на
    eq = '{}x\u00B2{}x{}=0'.format(*(num_f[x.is_integer()] for x in nums))

    тогда получится что-то типо:
    print(quadratic_eq_formatter([-2.0, 5.0, 5.2]))
    -2x²+5x+5.2=0
    Ответ написан
    Комментировать