Sympy解析器没有传递正确的constan

2024-06-16 08:35:26 发布

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

>>>from sympy.parsing.sympy_parser import (parse_expr, ... standard_transformations, function_exponentiation)
>>> transformations = standard_transformations + (function_exponentiation,)
>>>parse= parse_expr('2x', transformations=transformations)
parse = parse_expr("2x", transformations=transformations)
>>> parse.coeff("x",0)
2
>>> parse.coeff("x")
2
>>> parse = parse_expr("2x+5", transformations=transformations)
>>> parse.coeff("x")
2
>>> parse.coeff("x",0)
5

我对python和sympy很陌生。 这里的问题是,每当我想得到常数0时,它都会返回x的系数,但当常数不为零时,就不会出现这种情况(如第二个等式所示)。我试着用它来解线性方程组,我不知道用户的输入。但当x后面没有常数时,它总是给我一个错误的答案


Tags: fromimportparserparse常数functionstandardsympy
1条回答
网友
1楼 · 发布于 2024-06-16 08:35:26

关于Github有一些讨论:https://github.com/sympy/sympy/issues/5657

一种方法是转换为多项式:

>>> (2*x + 3).as_poly()
Poly(2*x + 3, x, domain='ZZ')
>>> (2*x + 3).as_poly().nth(0)
3
>>> (2*x + 3).as_poly().nth(1)
2
>>> (2*x).as_poly().nth(0)
0
>>> (2*x).as_poly().nth(1)
2

不幸的是,首先转换为Poly会比较慢。你知道吗

相关问题 更多 >