web-dev-qa-db-ja.com

python

Python 3.3では、印刷時に文字列の添え字のテキストの一部を作成する方法はありますか?

例えばH₂(H、次に下付き文字2)

8
samrobbins

必要なのが数字だけの場合は、 str.maketrans() および str.translate() メソッドを使用できます。

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

これは、Python 2-参照 Python 2 maketrans()関数がUnicodeで機能しない で機能しないことに注意してください)==それを回避する方法。

21
Zero Piraeus

コンソールで実行される出力は単純なテキストです。端末がunicodeをサポートしている場合(ほとんどの場合は最近) nicode's subscripts を使用できます。 (例:H₂)つまり、下付き文字は次の範囲にあります。

  • 数値の場合は0x208N、+-=()N0からF
  • 文字の場合は0x209N

例えば:

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

より複雑な出力の場合は、マークアップ言語(HTMLなど)または組版言語(LaTeXなど)を使用する必要があります。

13
Bakuriu

このようなコードを使用することもできます:

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形式です。

4
Shirsho

このコードを使用すると、上付き文字と下付き文字にアルファベットを使用できます。このコードでは、format()は関数で、Format関数( '\ unicode')で使用できます。

この表( Wikipediaのユニコードの下付き文字と上付き文字 )を使用すると、適切なUnicodeを適切なUnicodeに与えることができます

上付き文字と下付き文字を使用できます

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