使用Sympy在文本中打印希腊字母

5

假设我想打印类似于

"我是π"

其中π应该是希腊字母π。使用sympy,我可以这样做:

import sympy
from sympy.abc import pi
sympy.pprint(pi)

这个代码可以得到希腊字母π,但我在将其放入文本时遇到了问题。例如:

sympy.pprint("I am"+pi)

显然这并不起作用。我可以将文本转换为一个sympy符号sympy.Symbol('I am'),但是接下来我会得到I am+pi。

3
你想根据英文名称打印数学希腊字母吗?你尝试过使用字典吗:d = {'pi': u'\U0001D6D1'} - jfs
3个回答

4
你需要的是 pretty(),它与 pprint 相同,但返回一个字符串而不是打印输出。
In [1]: pretty(pi)
Out[1]: 'π'

In [2]: "I am %s" % pretty(pi)
Out[2]: 'I am π'

如果你只关心获取Unicode字符,你可以使用Python标准库:
import unicodedata
unicodedata.lookup("GREEK SMALL LETTER %s" % letter.upper()) # for lowercase letters
unicodedata.lookup("GREEK CAPITAL LETTER %s" % letter.upper()) # for uppercase letters

3
您可以使用unicodedata.lookup来获取Unicode字符。对于您的情况,您可以这样做:
import unicodedata
print("I am " + unicodedata.lookup("GREEK SMALL LETTER PI"))

这将产生以下结果:
I am π

如果您想要大写字母,应该执行unicode.lookup("GREEK CAPITAL LETTER PI"))。您可以将PI替换为任何希腊字母的名称。

1

latex和str都将返回一个字符串

>>> latex(pi)
'\\pi'
>>> str(pi)
'pi'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接