Printing subscript in python

瘦欲@ 提交于 2019-11-26 16:18:57

问题


In Python 3.3, is there any way to make a part of text in a string subscript when printed?

e.g. H₂ (H and then a subscript 2)


回答1:


If all you care about are digits, you can use the str.maketrans() and str.translate() methods:

>>> SUB = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉")
>>> SUP = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
>>> "H2SO4".translate(SUB)
'H₂SO₄'

Note that this won't work in Python 2 - see Python 2 maketrans() function doesn't work with Unicode for an explanation of why that's the case, and how to work around it.




回答2:


The output performed on the console is simple text. If the terminal supports unicode (most do nowadays) you can use unicode's subscripts. (e.g H₂) Namely the subscripts are in the ranges:

  • 0x208N for numbers, +, -, =, (, ) (N goes from 0 to F)
  • 0x209N for letters

For example:

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

For more complex output you must use a markup language (e.g. HTML) or a typesetting language (e.g. LaTeX).




回答3:


Using code like this works too:

print('\N{GREEK SMALL LETTER PI}r\N{SUPERSCRIPT TWO}')
print('\N{GREEK CAPITAL LETTER THETA}r\N{SUBSCRIPT TWO}')

The output being:

πr²
Θ₂

Note that this works on Python versions 3.3 and higher only. Unicode formatting.




回答4:


By using this code you can use alphabets on the superscript and subscript In This code format() is Function and in Format function ('\unicode')

By using this table (Unicode subscripts and superscripts on Wikipedia) you can give suitable unicode to the suitable one

you can use superscript and sub script

"10{}".format('\u00B2')  # superscript 2


来源:https://stackoverflow.com/questions/24391892/printing-subscript-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!