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

5 投票
3 回答
18229 浏览
提问于 2025-04-28 18:29

假设我想打印出这样的内容:

“我就是π”

这里的π应该是希腊字母π。使用sympy这个库,我可以这样做:

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

这样可以得到希腊字母π,但我在把它放进文本里时遇到了问题。例如:

sympy.pprint("I am"+pi)

显然这样是行不通的。我可以把文本转换成sympy的符号,比如sympy.Symbol('我就是'),但这样我得到的结果是:

我就是+π

暂无标签

3 个回答

1

latex和str都会返回一个字符串。

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

你可以使用 unicodedata.lookup 来获取 Unicode 字符。在你的例子中,你可以这样做:

import unicodedata
print("I am " + unicodedata.lookup("GREEK SMALL LETTER PI"))

这样会得到以下结果:

I am π

如果你想要大写字母的话,可以使用 unicode.lookup("GREEK CAPITAL LETTER PI")。你可以把 PI 替换成任何希腊字母的名字。

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

撰写回答