在python中打印下标
Posted
技术标签:
【中文标题】在python中打印下标【英文标题】:Printing subscript in python 【发布时间】:2014-08-15 00:37:37 【问题描述】:在 Python 3.3 中,有什么方法可以在打印时在字符串下标中制作一部分文本?
例如H₂(H,然后是下标 2)
【问题讨论】:
您的意思是纯文本、html 还是其他内容?另外,您只对下标数字感兴趣吗? 【参考方案1】:如果您只关心数字,您可以使用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 了解为什么会出现这种情况以及如何解决它。
【讨论】:
+1。 @Sam:要强调的是,唯一可以像这样直接完成的下标需要特殊字符的存在(在Unicode中)。这样,'H₂SO₄'
中的 2 和 4 实际上与 2 和 4 是不同的字符。然而,实现下标和上标的方式是相当不寻常的。正如 Bakuriu 在***.com/a/24391972/1346705 中提到的那样,通常的方法是使用能够显示 Unicode 字符的查看器以外的东西。
这段代码在 Python 3 中很棒,但在 Python 2 中中断:Python 2 maketrans() function doesn't work with Unicode: “the arguments are different lengths” when they actually are【参考方案2】:
如果你想在绘图的轴上使用它,你可以这样做:
import matplotlib.pyplot as plt
plt.plot([1])
plt.ylabel(r'$H_2$')
plt.show()
给了
【讨论】:
【参考方案3】:使用这样的代码也可以:
print('\NGREEK SMALL LETTER PIr\NSUPERSCRIPT TWO')
print('\NGREEK CAPITAL LETTER THETAr\NSUBSCRIPT TWO')
输出是:
πr²
Θ₂
请注意,这仅适用于 Python 3.3 及更高版本。 Unicode 格式。
【讨论】:
请帮助我理解\N
在python中的使用
这对我有用,但仍需要搜索加号的下标代码
@tbhaxor \Nname 是一个转义序列。含义:Unicode 数据库中名为 name 的字符(仅限 Unicode)【参考方案4】:
通过使用此代码,您可以在上标和下标上使用字母 在这段代码中 format() 是 Function 并且在 Format 函数中 ('\unicode')
通过使用此表 (Unicode subscripts and superscripts on Wikipedia),您可以将合适的 unicode 分配给合适的人
你可以使用上标和下标
"10".format('\u00B2') # superscript 2
【讨论】:
你为什么要在这里使用format
?只需 "10\u00B2"
即可。【参考方案5】:
在控制台上执行的输出是简单的文本。如果终端支持 unicode(现在大多数都支持),您可以使用 unicode's subscripts。 (例如 H₂)即下标在范围内:
0x208N 表示数字,+
,-
,=
,(
,)
(N
从 0
变为 F
)
0x209N 表示字母
例如:
In [6]: print(u'H\u2082O\u2082')
H₂O₂
对于更复杂的输出,您必须使用标记语言(例如 HTML)或排版语言(例如 LaTeX)。
【讨论】:
他们最终颠倒了两个 @Sam ?不。下标2
只是一个小2
放低一点。
0x209N 不是完整的字母范围。它只是一个、e、o、x,然后是一个颠倒的 e。以上是关于在python中打印下标的主要内容,如果未能解决你的问题,请参考以下文章
在 swift 3 中打印 json 时出现任何下标成员错误 [重复]