We can generalize our function for polynomials of arbitrary degree:
def polynomial_creator(*coefficients):
def polynomial(x):
res = 0
degree = len(coefficients) - 1
for index, coeff in enumerate(coefficients):
res += coeff * x**(degree - index)
return res
return polynomial
p1 = polynomial_creator(4)
p2 = polynomial_creator(2, 4)
p3 = polynomial_creator(2, 3, -1, 8, 1)
p4 = polynomial_creator(-1, 2, 1)
for x in range(-2, 2, 1):
print(x, p1(x), p2(x), p3(x), p4(x))
-2 4 0 -11 -7
-1 4 2 -9 -2
0 4 4 1 1
1 4 6 13 2