Печать подписи на 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 (большинство в настоящее время), вы можете использовать индексы Unicode. (например, H₂) А именно подписки находятся в диапазонах:
- 0x208N для номеров,
+
,-
,=
,(
,)
(N
идет от0
вF
) - 0x209N для писем
Например:
In [6]: print(u'H\u2082O\u2082')
H₂O₂
Для более сложного вывода вы должны использовать язык разметки (например, HTML) или язык набора текста (например, LaTeX).
Использование такого кода тоже работает:
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.
Если вы хотите использовать его по осям сюжета, вы можете:
import matplotlib.pyplot as plt
plt.plot([1])
plt.ylabel(r'$H_{2}$')
plt.show()
который дает
https:https://stackru.com/images/7389698227375aa4a575dede534892051489b3e1.png
Используя этот код, вы можете использовать алфавиты в надстрочном и подстрочном индексе. В этом коде форматом () является функция, а в функции формата ('\unicode')
Используя эту таблицу ( индексы и надстрочные индексы Unicode в Википедии), вы можете присвоить подходящий юникод подходящему
вы можете использовать надстрочный и дополнительный скрипт
"10{}".format('\u00B2') # superscript 2