Pythonのunichr関数とは

Pythonunichr関数は、指定されたUnicodeコードポイントを対応する文字に変換するための関数です。たとえば、コードポイント65を渡すと、その対応する文字である'A'が返されます。この関数は、特にPython 2で多く使われましたが、Python 3ではunichrが廃止され、代わりにchr関数が使用されます。 Unicodeとは、世界中の文字や記号を一意に識別するための標準です。各文字や記号には「コードポイント」という数値が割り当てられており、unichrはこの数値を文字に変換する役割を果たします。

unichr関数の基本構文(Python 2)

unichr(code_point)
  • code_point
    対応するUnicode文字を取得したい数値(コードポイント)を指定します。 unichrは、このコードポイントに対応する文字を返します。

# Python 2の例
print(unichr(65))  # 結果: 'A'
print(unichr(8364))  # 結果: '€' (ユーロ記号)

この例では、コードポイント65が文字'A'、コードポイント8364がユーロ記号'€'に変換されています。

Python 3での変更 - chr関数

Python 3ではunichr関数が廃止され、chr関数がその役割を引き継いでいます。Python 3では、すべての文字列がUnicodeに対応しており、chr関数を使ってUnicodeコードポイントを文字に変換します。

chr関数の基本構文(Python 3)

chr(code_point)
  • code_point
    対応する文字を取得したいUnicodeコードポイントを指定します。

# Python 3の例
print(chr(65))  # 結果: 'A'
print(chr(8364))  # 結果: '€'
print(chr(128512))  # 結果: '😀' (スマイリーの絵文字)

chr関数は、Python 2のunichrと同様の機能を提供しますが、Python 3ではすべての文字列がUnicodeであるため、特別なunichr関数を使う必要がなくなりました。

Unicodeコードポイントとは?

Unicodeコードポイントは、文字や記号を一意に表す数値です。このコードポイントを使って、世界中の文字を同じ標準に基づいて表現できます。コードポイントは、U+に続く16進数で表されることが多く、たとえば、文字'A'のコードポイントはU+0041、絵文字のスマイリーフェイス'😀'U+1F600です。

例:Unicodeコードポイントの確認

# 'A' のUnicodeコードポイントを確認
print(ord('A'))  # 結果: 65
# '€' (ユーロ記号)のコードポイント
print(ord('€'))  # 結果: 8364
# 絵文字 '😀' のコードポイント
print(ord('😀'))  # 結果: 128512

ord関数を使うことで、特定の文字に対応するUnicodeコードポイントを調べることができます。逆に、unichrPython 2)やchrPython 3)を使うことで、コードポイントから文字を取得できます。

unichr(chr)関数の実用例

絵文字を表示する

絵文字もUnicode文字の一部であるため、コードポイントを使って簡単に表示できます。

# Python 3での例(chrを使用)
print(chr(128512))  # 結果: '😀'
print(chr(128515))  # 結果: '😃'
print(chr(128516))  # 結果: '😄'

これにより、さまざまな絵文字をコードポイントから生成することができます。

Unicode対応のテキスト処理

Unicode文字を扱う場面では、特定のコードポイントの文字を生成することが必要になることがあります。chrunichrを使用することで、簡単にその文字を取得できます。

# 特定のUnicode記号を使用したテキストの生成
currency_symbols = [chr(36), chr(8364), chr(165)]  # $, €, ¥
print("通貨記号: " + " ".join(currency_symbols))
# 結果: 通貨記号: $ € ¥

このように、複数の通貨記号をUnicodeコードポイントから生成し、テキストを作成することも可能です。

特定範囲の文字を生成する

Unicodeの特定範囲内の文字を順次生成していくことも、chrを使えば簡単にできます。たとえば、アルファベットの大文字を一括生成することも可能です。

# AからZまでのアルファベットを生成
for i in range(65, 91):
    print(chr(i), end=" ")
# 結果: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

このように、chrを使うと特定の文字範囲を動的に扱うことができ、簡単にアルファベットや数字などの文字を生成できます。

unichrの注意点

Python 2とPython 3の違い

unichrPython 2で使用され、Unicodeコードポイントから文字を生成するために使われました。しかし、Python 3ではすべての文字列がデフォルトでUnicodeに対応するため、unichr関数は廃止され、代わりにchr関数が使用されています。そのため、Python 3以降ではchrを使うことが推奨されます。 Python 2からPython 3に移行する際は、この違いに注意が必要です。

結論

Pythonunichr関数(Python 3ではchr)は、Unicodeコードポイントを対応する文字に変換するための非常に便利な関数です。世界中のあらゆる文字や記号を一意に表すUnicodeを扱う際に、コードポイントから文字を生成したり、逆に文字からコードポイントを取得するために広く使われています。 Python 3では、unichrchrに統一され、すべての文字列がデフォルトでUnicodeに対応しているため、以前よりも扱いやすくなっています。テキスト処理や国際化対応のアプリケーションで、chrordをうまく使いこなすことで、柔軟かつ強力な文字列操作 が可能です。