为什么多项式函数会抛出语法错误?

2024-04-26 12:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用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 

Tags: 代码算法inputrawreturnifdef错误
3条回答

尽管我们在数学中编写(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

你留下了乘法:

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

相关问题 更多 >