Системное администрирование

Помогите решить задачу на Python.

Я пытался решить её много раз, но не получается. Текст задачи: Роб учится решать сложные уравнения. Он узнал, что многочлены можно записывать так:
ax 5 + bx 4 + cx 3 + dx 2 + ex + f.
Напиши программу, которая принимает натуральное число n, а затем n + 1 целых чисел — коэффициенты (a, b, c и так далее). Выведи многочлен.
При этом:
• Не печатай 1 перед одночленами с x.
• Ставь знак «-» вместо -1 перед одночленами с x.
• Пропускай произведения на 0.
Пиши коэффициенты с числами слитно, а знаки арифметических операций — через пробел.
Если все коэффициенты равны 0, ответом будет пустая строка.
Мой код:
 n = int(input().strip()) 
coefs = [int(input().strip()) for i in range(n + 1)]
result = []
for i in range(n, -1, -1):
if coefs[n - i] == 0:
continue
if i == n:
result.append(f"{coefs[n - i]}x ** {i}")
elif i == 1:
if coefs[n - i] > 0:
result.append(f" + {coefs[n - i]}x")
else:
result.append(f" - {-coefs[n - i]}x")
elif i == 0:
if coefs[n - i] > 0:
result.append(f" + {coefs[n - i]}")
else:
result.append(f" - {-coefs[n - i]}")
else:
if coefs[n - i] > 0:
result.append(f" + {coefs[n - i]}x ** {i}")
else:
result.append(f" - {-coefs[n - i]}x ** {i}")
if result:
print("".join(result))
else:
print("")
Ввод:
5
-7
-1
-5
0
-3
-1
Мой вывод:
-7x ** 5 - 1x ** 4 - 5x ** 3 - 3x - 1
Правильный вывод:
-7x ** 5 - x ** 4 - 5x ** 3 - 3x - 1
 def next(a, n, prev):
if a == 0: return prev
return (prev +
[['-', ''], [' - ', ' + ']][len(prev) != 0][a > 0] +
['', str(abs(a))][a not in [-1, 1] or n == 0] +
['', 'x', 'x ** %d' % n][(n > 0) + (n > 1)])

res = ''
for i in range(int(input()), -1, -1): res = next(int(input()), i, res)
print(res)
АИ
Александр Ивернев
90 522
Лучший ответ
Дмитрий Цай не могу разобраться, код выводит: -x ** 3
А должен: - x ** 3
Из-за этого выдаёт ошибку
Не выводится плюс перед коэффициентом 1.

n = int(input().strip())
coefs = [int(input().strip()) for i in range(n + 1)]
result = []
for i in range(n, -1, -1):
if coefs[n - i] == 0:
continue
if i == n:
result.append(f"{coefs[n - i]}x ** {i}")
elif i == 1:
if coefs[n - i] > 0:
result.append(f" + {'+' if coefs[n - i] > 1 else ''}{coefs[n - i]}x")
else:
result.append(f" - {'-1' if coefs[n - i] == -1 else '-' + str(-coefs[n - i])}x")
elif i == 0:
if coefs[n - i] > 0:
result.append(f" + {coefs[n - i]}")
else:
result.append(f" - {-coefs[n - i]}")
else:
if coefs[n - i] > 0:
result.append(f" + {'+' if coefs[n - i] > 1 else ''}{coefs[n - i]}x ** {i}")
else:
result.append(f" - {'-1' if coefs[n - i] == -1 else '-' + str(-coefs[n - i])}x ** {i}")
if result:
print("".join(result))
else:
print("")
Виктор Харьков Вывод всё равно не правильный: -7x ** 5 - -1x ** 4 - -5x ** 3 - -3x - 1