Почему эта полиномиальная функция выдает ошибку SyntaxError?
Я пытаюсь написать базовый алгоритм для оценки полинома четвертого порядка с использованием Python. Код ниже, и я не уверен, что я делаю неправильно. Я придумал этот код, и я не уверен, достаточно ли этого, чтобы добиться цели:
x = int(raw_input(":"))
def eval_poly(x):
if abs(x) > 0:
return 35x**4-17x**3+5x**2+41x-29
print eval_poly(x)
Полученная ошибка говорит о том, что 35x**4
неверный синтаксис и полином, который я пытаюсь оценить, выглядит следующим образом:
35x^4 - 17x^3 + 5x^2 + 41x -29
4 ответа
Хотя мы пишем (35 x) в математике для косвенного значения (35 * x), интерпретатор Python не может решить эту проблему. Вы должны сказать это 35 * (x ** 4)
в явном виде.
Таким образом, вы измените функцию, чтобы включить
return 35 * (x ** 4) - 17 * (x ** 3) + 5 * (x ** 2) + 41 * x - 29
(Скобки не являются строго необходимыми, потому что Python получит правильный порядок операций без них, но я думаю, что они способствуют удобочитаемости.)
Стоит сказать: ошибка возникает, когда Python пытается оценить выражение 35x
, но он не знает, как это интерпретировать. Он начинается с цифры, следовательно, не является переменной ( переменные должны начинаться с нецифрового символа), но содержит символ алфавита, следовательно, не число. Дело не только в том, что оно не знает, что означает это выражение, а в том, что 35x
Python невозможно разобрать.
Вам нужно явно выполнить умножение, как показано ниже. то есть. 7х становится 7* х.
В противном случае это выглядит хорошо...
x = int(raw_input(":"))
def eval_poly(x):
if abs(x) > 0:
return 35*x**4-17*x**3+5*x**2+41*x-29
print eval_poly(x)