我正在使用Sympy解析表达式并获得以下跟踪:
>>> parse_expr("3N", transformations=transformations)`
TypeError: unsupported operand type(s) for *: 'Integer' and 'function'
从我可以收集的内容来看,这是因为N
被解析器视为一个函数,而不仅仅是其他任何字符串。代码与我测试的一些其他符号一起正常工作。
任何人都可以简要解释为什么会这样吗?是否有使用parse_expr
无法解析的关键字或字符列表?
答案 0 :(得分:2)
引用文档(pitfalls and gotchas):
最后,建议您不要将I,E,S,N,C,O或Q用于变量或符号名称,因为它们用于...... 数值评估(N()是相当于evalf())... 或者更好的是,总是使用小写字母表示符号名称。 Python不会阻止你覆盖默认的SymPy名称或函数,所以要小心。