【问题标题】:Printing subscript in python在python中打印下标
【发布时间】:2014-08-15 00:37:37
【问题描述】:

在 Python 3.3 中,有什么方法可以在打印时在字符串下标中制作一部分文本?

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

【问题讨论】:

  • 您的意思是纯文本、HTML 还是其他内容?另外,您只对下标数字感兴趣吗?

标签: python python-3.x python-3.3 subscript


【解决方案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 了解为什么会出现这种情况以及如何解决它。

【讨论】:

【解决方案2】:

如果你想在绘图的轴上使用它,你可以这样做:

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

给了

【讨论】:

    【解决方案3】:

    使用这样的代码也可以:

    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中的使用
    • 这对我有用,但仍需要搜索加号的下标代码
    • @tbhaxor \N{name} 是一个转义序列。含义: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 表示数字,+-=()N0 变为 F
    • 0x209N 表示字母

    例如:

    In [6]: print(u'H\u2082O\u2082')
    H₂O₂
    

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

    【讨论】:

    • 他们最终颠倒了两个
    • @Sam ?不。下标2 只是一个小2 放低一点。
    • 0x209N 不是完整的字母范围。它只是一个、e、o、x,然后是一个颠倒的 e。
    猜你喜欢
    • 2021-10-20
    • 1970-01-01
    • 2021-04-12
    • 2012-09-25
    • 2022-12-13
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多