【发布时间】:2014-08-15 00:37:37
【问题描述】:
在 Python 3.3 中,有什么方法可以在打印时在字符串下标中制作一部分文本?
例如H₂(H,然后是下标 2)
【问题讨论】:
-
您的意思是纯文本、HTML 还是其他内容?另外,您只对下标数字感兴趣吗?
标签: python python-3.x python-3.3 subscript
在 Python 3.3 中,有什么方法可以在打印时在字符串下标中制作一部分文本?
例如H₂(H,然后是下标 2)
【问题讨论】:
标签: python python-3.x python-3.3 subscript
如果您只关心数字,您可以使用str.maketrans() 和str.translate() 方法:
example_string = "A0B1C2D3E4F5G6H7I8J9"
SUB = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉")
SUP = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
print(example_string.translate(SUP))
print(example_string.translate(SUB))
将输出:
A⁰B¹C²D³E⁴F⁵G⁶H⁷I⁸J⁹
A₀B₁C₂D₃E₄F₅G₆H₇I₈J₉
请注意,这在 Python 2 中不起作用 - 请参阅 Python 2 maketrans() function doesn't work with Unicode 了解为什么会出现这种情况以及如何解决它。
【讨论】:
'H₂SO₄' 中的 2 和 4 实际上与 2 和 4 是不同的字符。然而,实现下标和上标的方式是相当不寻常的。正如 Bakuriu 在stackoverflow.com/a/24391972/1346705 中提到的那样,通常的方法是使用能够显示 Unicode 字符的查看器以外的东西。
使用这样的代码也可以:
print('\N{GREEK SMALL LETTER PI}r\N{SUPERSCRIPT TWO}')
print('\N{GREEK CAPITAL LETTER THETA}r\N{SUBSCRIPT TWO}')
输出是:
πr²
Θ₂
请注意,这仅适用于 Python 3.3 及更高版本。 Unicode 格式。
【讨论】:
\N{}在python中的使用
通过使用此代码,您可以在上标和下标上使用字母 在这段代码中 format() 是 Function 并且在 Format 函数中 ('\unicode')
通过使用此表 (Unicode subscripts and superscripts on Wikipedia),您可以将合适的 unicode 分配给合适的人
你可以使用上标和下标
"10{}".format('\u00B2') # superscript 2
【讨论】:
format?只需 "10\u00B2" 即可。
在控制台上执行的输出是简单的文本。如果终端支持 unicode(现在大多数都支持),您可以使用 unicode's subscripts。 (例如 H₂)即下标在范围内:
+,-,=,(,)(N 从 0 变为 F)例如:
In [6]: print(u'H\u2082O\u2082')
H₂O₂
对于更复杂的输出,您必须使用标记语言(例如 HTML)或排版语言(例如 LaTeX)。
【讨论】:
2 只是一个小2 放低一点。