我试图用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

最佳答案

尽管我们在数学中写(35x)是隐式地表示(35x),但是python解释器不能解决这个问题。你需要明确地告诉它。
所以修改函数以包括

return 35 * (x ** 4) - 17 * (x ** 3) + 5 * (x ** 2) + 41 * x - 29

(括号并不是绝对必要的,因为没有括号,python将获得正确的操作顺序,但我认为它们有助于可读性。)
值得一提的是:当python试图计算表达式35 * (x ** 4)时会抛出错误,但它不知道如何解释这一点。它以数字开头,因此不是变量(variables have to start with a non-digit character),而是包含字母字符,因此不是数字。这不仅仅是因为它不知道这个表达式的含义,还因为35x对于python来说是不可能解析的。

08-27 15:41