Мне нужно написать функцию python, которая может решить любое квадратное c уравнение в форме: ax2 + bx + c = 0, также обработать особый случай, когда некоторые из коэффициентов равны нулю, у меня есть написать функцию с 3 необязательными аргументами ключевого слова, со значением по умолчанию 0. Таким образом, можно использовать эту функцию с любым порядком коэффициентов, при условии, что член quadrati c равен a, линейный равен b и постоянный это c. Кроме того, можно не указывать коэффициенты, если они равны 0. И мне нужно возвращать список на основе следующих условий: Из этих коэффициентов рассчитать каждое реальное решение и вернуть их в виде списка, не длиннее 2. Вернуть None, если все коэффициенты равны нулю, потому что в этом случае у вас будет бесконечное количество решений. Если решения нет или есть только сложные, вернуть пустой список. Если существует реальное root с кратностью 2, верните один длинный список. Однако проблема в том, что я не знал, как установить значения словаря по умолчанию, когда я получаю пустой словарь в качестве входных данных. Заранее благодарю за помощь!
Это мой код
import math
def quadratic_solve(**dictr):
List=[]
x1=dictr['a']
x2=dictr['b']
x3=dictr['c']
delta=x1*x1-4*x2*x3
if (x1==0 and x2==0 and x3==0):
return None
if (x1==0):
List.append(-x3/x2)
return List
if(dictr['b']*dictr['b']-4*dictr['a']*dictr['c']<0) :
return List
if(x2*x2-4*x1*x3>0) :
List.append((-x2+math.sqrt(delta))/2*x1)
List.append((-x2-math.sqrt(delta))/2*x1)
return List