繁体   English   中英

sympy function 中的负索引在 sympy 后无法显示

[英]Negative Index in sympy function cannot be displayed after sympify

我有一个项目,我需要在我的公式中显示负指数,我用运行前未知的输入生成,所以我必须在这些方程上调用 sympy.sympify() 。 但是,这破坏了它显示我的索引的方式。

不可能 sympify 像k_{-1}之类的东西,但是在声明时:

kN1 = sympy.symbols("k_{-1}")
sympy.preview(kN1)

我得到正确的 output 和负 integer。 正确的输出

有没有办法在整个 sympify 方法中保留这个索引,或者在我使用 sympify 并完成所有计算之后,是否可以恢复这种显示它们的方式?

简而言之:我可以在调用后将负 integer 作为索引:

a = "kN1"
expr = sympy.sympify(a)

我正在使用 sympy 1.9 和 python 3.8

在 sympification 期间,解析器不够聪明,无法识别下划线或“^”之后大括号中的内容是子/上标。 因此,正如您发现的那样,您将无法成功地表现出这样的表达方式。 如果您使用常规符号名称,则可以在xreplace打印时将它们替换为所需的名称:

...input and manipulation with kn1=Symbol('kn1') in expr
print(expr.xreplace({kn1:Symbol('k_{-1}')}))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM