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

时间:2016-06-09 16:19:37

标签: python sympy jupyter

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

import sympy as sp
ab = sp.Symbol("alpha beta")
sp.pprint(ab)
在符号操作中使用时,

ab的行为符合要求,但输出为:

alpha beta

我希望输出为:

α⋅β

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

ab.subs({ab : sp.Symbol("alpha") * sp.Symbol("beta")})

但这很乏味且不受欢迎。

2 个答案:

答案 0 :(得分:5)

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

如果您使用的是Jupyter笔记本,您只需将符号名称设置为您想要的LaTeX

ab = Symbol(r'\alpha\cdot\beta')

(不要忘记在字符串前面添加r,这样Python就不会吃掉反斜杠了)

如果使用纯文本输出,则可以将其设置为Unicode字符串。这也适用于Jupyter笔记本,虽然它会呈现略有不同,因为它将呈现实际的Unicode字符而不是LaTeX。

ab = Symbol(u'α⋅β')

答案 1 :(得分:0)

在sympy中将任何unicode字母设置为符号的正确方法是-编写symbols(u'any_unicode_you_want_just_copy_paste')

这很简单:

unicode in sympy symbol

代码:

ab = symbols(r'\alpha\cdot\beta')
print(ab)
a = symbols(u'α')
b = symbols(u'β')
bangla = symbols(u'ম')
print(a)
print(b)
print(bangla)

我在快照中剪切了这些行,因为它当前不起作用并且得分更高