使用 SymPy 解析包含 N 的表达式

Parsing an expression containing N using SymPy

我正在使用 Sympy 解析表达式并获得以下跟踪:

>>> parse_expr("3N", transformations=transformations)`
TypeError: unsupported operand type(s) for *: 'Integer' and 'function'

据我所知,发生这种情况是因为 N 被解析器视为一个函数,而不仅仅是任何其他字符串。该代码与我测试过的其他一些符号配合使用效果很好。

谁能简单解释一下为什么会这样?是否有无法使用 parse_expr 解析的关键字或字符列表?

引用文档 (pitfalls and gotchas):

Lastly, it is recommended that you not use I, E, S, N, C, O, or Q for variable or symbol names, as those are used for ... numeric evaluation (N() is equivalent to evalf() )... Or better yet, always use lowercase letters for Symbol names. Python will not prevent you from overriding default SymPy names or functions, so be careful.