Pythonのunichr関数とは
Python
のunichr
関数は、指定された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コードポイントを調べることができます。逆に、unichr
(Python
2)やchr
(Python
3)を使うことで、コードポイントから文字を取得できます。
unichr(chr)関数の実用例
絵文字を表示する
絵文字もUnicode文字の一部であるため、コードポイントを使って簡単に表示できます。
# Python 3での例(chrを使用)
print(chr(128512)) # 結果: '😀'
print(chr(128515)) # 結果: '😃'
print(chr(128516)) # 結果: '😄'
これにより、さまざまな絵文字をコードポイントから生成することができます。
Unicode対応のテキスト処理
Unicode文字を扱う場面では、特定のコードポイントの文字を生成することが必要になることがあります。chr
やunichr
を使用することで、簡単にその文字を取得できます。
# 特定の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の違い
unichr
はPython
2で使用され、Unicodeコードポイントから文字を生成するために使われました。しかし、Python
3ではすべての文字列がデフォルトでUnicodeに対応するため、unichr
関数は廃止され、代わりにchr
関数が使用されています。そのため、Python
3以降ではchr
を使うことが推奨されます。
Python
2からPython
3に移行する際は、この違いに注意が必要です。
結論
Python
のunichr
関数(Python
3ではchr
)は、Unicodeコードポイントを対応する文字に変換するための非常に便利な関数です。世界中のあらゆる文字や記号を一意に表すUnicodeを扱う際に、コードポイントから文字を生成したり、逆に文字からコードポイントを取得するために広く使われています。
Python
3では、unichr
はchr
に統一され、すべての文字列がデフォルトでUnicodeに対応しているため、以前よりも扱いやすくなっています。テキスト処理や国際化対応のアプリケーションで、chr
やord
をうまく使いこなすことで、柔軟かつ強力な文字列操作
が可能です。