Нужно чтобы try except в цикле переносил нас из функции на ввод переменных a b c
Нужно чтобы try except в цикле переносил нас на ввод переменных, не знаю как сделать это, помогите..
import math
def fun(a, b, c):
while True:
if a == 0:
print("a не может быть равно нулю")
continue
try:
D = b ** 2 - 4 * a * c
except OverflowError:
print("Это перебор с цифрами")
continue
except ValueError:
print("Это не целое или рациональное число")
continue
print("Дискриминант D = %.2f" % D)
if math.isinf(D) or math.isnan(D):
print("Габелла, бесконечность - предел(слишком большое число)")
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
print("Введите коэффициенты для уравнения - целые или рациональные числа")
print("ax^1+bx+c=0")
a = float(input("a="))
b = float(input("b="))
c = float(input("c="))
fun(a, b, c)
Ответы (2 шт):
Автор решения: root
→ Ссылка
Так как куда переносить непонятно я написал код, далее запустите функцию где вам надо:
import math
def input():
print("Введите коэффициенты для уравнения - целые или рациональные числа")
print("ax^1+bx+c=0")
a = float(input("a="))
b = float(input("b="))
c = float(input("c="))
fun(a, b, c)
def fun(a, b, c):
while True:
if a == 0:
print("a не может быть равно нулю")
continue
try:
D = b ** 2 - 4 * a * c
except OverflowError:
print("Это перебор с цифрами")
continue
except ValueError:
print("Это не целое или рациональное число")
continue
print("Дискриминант D = %.2f" % D)
if math.isinf(D) or math.isnan(D):
print("Габелла, бесконечность - предел(слишком большое число)")
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
Автор решения: Gans Liber
→ Ссылка
так получилось в итоге, даже цикл не понадобился)
import math
def fun(a, b, c):
if a == 0:
print("a не может быть равно нулю")
inp()
try:
D = b ** 2 - 4 * a * c
except OverflowError:
print("Это перебор с цифрами")
inp()
except ValueError:
print("Это не целое или рациональное число")
inp()
print("Дискриминант D = %.2f" % D)
if math.isinf(D) or math.isnan(D):
print("Габелла, бесконечность - предел(слишком большое число)")
inp()
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("Корней нет")
def inp():
print("Введите коэффициенты для уравнения - целые или рациональные числа")
print("ax^1+bx+c=0")
a = float(input("a="))
b = float(input("b="))
c = float(input("c="))
fun(a, b, c)
inp()