在python中打印下标

sam*_*ins 8 python subscript python-3.x python-3.3

在Python 3.3中,有没有办法在打印时在字符串下标中创建文本的一部分?

例如H 2(H,然后是下标2)

Zer*_*eus 21

如果你关心的只是数字,你可以使用str.maketrans()str.translate()方法:

>>> SUB = str.maketrans("0123456789", "??????????")
>>> SUP = str.maketrans("0123456789", "?¹²³??????")
>>> "H2SO4".translate(SUB)
'H?SO?'
Run Code Online (Sandbox Code Playgroud)

请注意,这在Python 2中不起作用 - 请参阅Python 2 maketrans()函数不能与Unicode一起解释为什么会出现这种情况,以及如何解决它.


Bak*_*riu 13

在控制台上执行的输出是简单文本.如果终端支持unicode(现在大多数都支持),你可以使用unicode的下标.(例如H 2)即下标在以下范围内:

  • 0x208N数字,+,-, =,(,)(N从云0F)
  • 字母为0x209N

例如:

In [6]: print(u'H\u2082O\u2082')
H?O?
Run Code Online (Sandbox Code Playgroud)

对于更复杂的输出,您必须使用标记语言(例如HTML)或排版语言(例如LaTeX).


小智 10

使用这样的代码也有效:

print('\N{GREEK SMALL LETTER PI}r\N{SUPERSCRIPT TWO}')
print('\N{GREEK CAPITAL LETTER THETA}r\N{SUBSCRIPT TWO}')
Run Code Online (Sandbox Code Playgroud)

输出为:

?r²
??
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于 Python 3.3 及更高版本。Unicode 格式。


R. *_*Cox 5

如果您想在绘图的轴上使用它,您可以执行以下操作:

import matplotlib.pyplot as plt
plt.plot([1])
plt.ylabel(r'$H_{2}$')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这使

在此处输入图片说明