是否有正确的方法将复合希腊字母设置为SymPy中的符号?

And*_*lin 7 python sympy jupyter

听起来很傻,我想在SymPy中使用复合希腊字母作为单个符号.例如,如果在Jupyter笔记本中输入以下内容:

import sympy as sp
ab = sp.Symbol("alpha beta")
sp.pprint(ab)
Run Code Online (Sandbox Code Playgroud)

ab 在符号操作中使用时表现得很好,但输出是:

alpha beta
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

???
Run Code Online (Sandbox Code Playgroud)

我可以在操作后使用subs命令,如下所示:

ab.subs({ab : sp.Symbol("alpha") * sp.Symbol("beta")})
Run Code Online (Sandbox Code Playgroud)

但这很乏味且不受欢迎.

asm*_*rer 6

符号名称可以是任何字符串,但是希腊字母名称自动转换为希腊字母以进行打印不适用于所有输入。我猜它不会尝试将字符串拆分为空格。

如果您使用的是Jupyter笔记本,则可以将符号名称设置为所需的LaTeX

ab = Symbol(r'\alpha\cdot\beta')
Run Code Online (Sandbox Code Playgroud)

(不要忘记在字符串前加上r,这样Python不会吃反斜杠)

如果使用纯文本输出,则可以将其设置为Unicode字符串。这也应该在Jupyter笔记本中工作,尽管它的呈现方式会稍有不同,因为它将呈现实际的Unicode字符而不是LaTeX。

ab = Symbol(u'???')
Run Code Online (Sandbox Code Playgroud)