Дан код по нахождению дискриминанта, нужно вывести действия в функцию, которую мы вызываем после ввода переменных

import math
while True:
    print("Введите коэффициенты для уравнения - целые или рациональные числа")
    print("ax^1+bx+c=0")
    try:
        a = float(input("a="))
        b = float(input("b="))
        c = float(input("c="))
        D = b ** 2-4 * a * c
    except ValueError:
        print("Это не целое или рациональное число")
        continue
    except OverflowError:
        print("Это перебор с цифрами")
        continue
    except ZeroDivisionError:
        print("Ввели нули")
        continue
    print("Дискриминант D = %.2f" % D)

    if math.isinf(D) or math.isnan(D):
        print("Габелла, бесконечность - предел(слишком большое число)")
        continue
    elif a == 0:
        print("a не может быть равно нулю")
        continue
    elif D > 0:
        x1 = (-b + math.sqrt(D)) / (2 * a)
        x2 = (-b - math.sqrt(D)) / (2 * a)
        print("x1 = %.2f \nx2 = %.2f" % (x1, x2))
    elif D == 0:
        x = -b / (2 * a)
        print("x = %.2f" % x)
    else:
        print("Корней нет")
    break

Ответы (1 шт):

Автор решения: Gans Liber

Возможно немного замудрёно, но оказалось не сложно

import math

def fun(a, b, c, D):
    print("Дискриминант D = %.2f" % D)

    if math.isinf(D) or math.isnan(D):
        print("Габелла, бесконечность - предел(слишком большое число)")

    elif D > 0:
        x1 = (-b + math.sqrt(D)) / (2 * a)
        x2 = (-b - math.sqrt(D)) / (2 * a)
        print("x1 = %.2f \nx2 = %.2f" % (x1, x2))
    elif D == 0:
        x = -b / (2 * a)
        print("x = %.2f" % x)
    else:
        print("Корней нет")

while True:
    print("Введите коэффициенты для уравнения - целые или рациональные числа")
    print("ax^1+bx+c=0")
    try:
        a = float(input("a="))
        if a == 0:
            print("a не может быть равно нулю")
            continue
        b = float(input("b="))
        c = float(input("c="))
        D = b ** 2-4 * a * c

    except ValueError:
        print("Это не целое или рациональное число")
        continue
    except OverflowError:
        print("Это перебор с цифрами")
        continue
    fun(a, b, c, D)
    break
→ Ссылка