Уравнения степени не выше второй

adislan

Новичок
Пользователь
Окт 21, 2020
20
0
1
Напишите функцию roots_of_quadratic_equation(a,b,c), которая принимает параметры a,b,c и возвращает решения уравнения ax2 + bx + c = 0.
Возвращаемое значение у функции ровно одно, а корней может быть от нуля до двух (есть еще один случай: a = b = c = 0, при котором решением является любое число; про него ниже), поэтому сделать так, чтобы эта функция возвращала просто значение корня, не получится.
Вместо этого вы должны вернуть из функции список, содержащий значения всех корней уравнения (одно, два или ни одного). Если корнем является любое значение x, верните вместо списка чисел – список, содержащий одну строку “all” (["all"])
Не забудьте рассмотреть случаи, когда квадратное уравнение вырождается до линейного (a = 0).
Также бывает, что линейное уравнение вырождается еще дальше – до уравнения, в котором x не участвует вовсе (a = b = 0). В этом случае мы получаем уравнение c = 0, которое, в зависимости от значения c, либо не имеет корней, либо корнем является любой x.
Пример 1
ВводВывод
result = roots_of_quadratic_equation(1, 2, 1)
print(*sorted(result))
-1
Пример 2
ВводВывод
result = roots_of_quadratic_equation(1, -3, 2)
print(*sorted(result))
1 2




ВОТ МОЙ КОД:
def roots_of_quadratic_equation(*num):
d = (num[1] ** 2) - (4 * (num[0] * num[2]))
if d > 0:
return int((-num[1] + pow(d, .5)) / (2 * num[0])), int((-num[1] - pow(d, .5)) / (2 * num[0]))
elif d == 0:
return int(-(num[1] / (2 * num[0]))),
return []

вроде бы работал но на одном из тестов программа упала

конкретно вот этот тест:
result = roots_of_quadratic_equation(0, 2, 1)
if 'all' in result:
if result == ['all']:
print('0 0 0')
else:
print('fail')
else:
print(*sorted(result))


хочу объяснения где ошибка и как её исправить
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 646
472
83
 

Форум IT Специалистов