Печать индекса в python
в Python 3.3 есть ли способ сделать часть текста в строковом индексе при печати?
например, H₂ (H, а затем индекс 2)
2 ответов
Если все, что вам нужно, это цифры, вы можете использовать str.maketrans()
и str.translate()
методы:
>>> SUB = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉")
>>> SUP = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
>>> "H2SO4".translate(SUB)
'H₂SO₄'
обратите внимание, что это не будет работать в Python 2 - см. функция Python 2 maketrans () не работает с Unicode для объяснения того, почему это так, и как это обойти.
вывод, выполняемый на консоли, является простым текстом. Если терминал поддерживает unicode (большинство в настоящее время), вы можете использовать индексы Юникода. (e.g H₂) а именно, индексы находятся в диапазонах:
- 0x208N для чисел,
+
,-
,=
,(
,)
(N
сочетается с0
toF
) - 0x209N для букв
например:
In [6]: print(u'H\u2082O\u2082')
H₂O₂
для более сложного вывода необходимо использовать язык разметки (например, HTML) или язык набора текста (например, LaTeX).