为什么这个多项式函数会抛出 SyntaxError?
Why is this polynomial function throwing a 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
你留下了乘法:
35*x**4-17*x**3+5*x**2+41*x-29
您需要明确执行如下乘法。 IE。 7x 变成 7*x.
不然看起来还不错...
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)
虽然我们在数学中写(35x)隐含的意思是(35*x),Python解释器无法解决这个问题。你需要明确地告诉它35 * (x ** 4)
。
所以你修改函数来包含
return 35 * (x ** 4) - 17 * (x ** 3) + 5 * (x ** 2) + 41 * x - 29
(括号并不是绝对必要的,因为 Python 没有括号也能得到正确的运算顺序,但我认为它们有助于提高可读性。)
值得一提的是:当 Python 尝试计算表达式 35x
时会抛出错误,但它不知道如何解释它。它以数字开头,因此不是变量 (variables have to start with a non-digit character),但包含字母字符,因此不是数字。不仅仅是它不知道这个表达式是什么意思,而是 35x
不可能被 Python 解析。
35*(x**4) - 17*(x**3) + 5*(x**2) + 41*x - 29
我正在尝试编写一个基本算法来使用 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
你留下了乘法:
35*x**4-17*x**3+5*x**2+41*x-29
您需要明确执行如下乘法。 IE。 7x 变成 7*x.
不然看起来还不错...
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)
虽然我们在数学中写(35x)隐含的意思是(35*x),Python解释器无法解决这个问题。你需要明确地告诉它35 * (x ** 4)
。
所以你修改函数来包含
return 35 * (x ** 4) - 17 * (x ** 3) + 5 * (x ** 2) + 41 * x - 29
(括号并不是绝对必要的,因为 Python 没有括号也能得到正确的运算顺序,但我认为它们有助于提高可读性。)
值得一提的是:当 Python 尝试计算表达式 35x
时会抛出错误,但它不知道如何解释它。它以数字开头,因此不是变量 (variables have to start with a non-digit character),但包含字母字符,因此不是数字。不仅仅是它不知道这个表达式是什么意思,而是 35x
不可能被 Python 解析。
35*(x**4) - 17*(x**3) + 5*(x**2) + 41*x - 29