使用sympy在文本中打印希腊字母
假设我想打印出这样的内容:
“我就是π”
这里的π应该是希腊字母π。使用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