Pythonのchr()
とord()
関数: 文字とUnicodeの変換
Pythonには文字列とUnicode文字の相互変換を行うためのchr()
とord()
という2つの関数があります。これらの関数を使うことで、文字列とUnicodeコードポイントの変換が容易に行えます。この記事では、chr()
とord()
関数について詳しく解説し、実際のコード例を交えながらその使い方を説明します。
chr()
関数の基本的な使い方
chr()
関数はUnicodeコードポイントを受け取り、それに対応する文字を返します。以下は基本的な使い方の例です。
# Unicodeコードポイントから文字への変換 char_result = chr(65) # Unicodeコードポイント65は文字Aに対応 print(char_result) # 出力: A
この例では、Unicodeコードポイントが65に対応する文字がA
であるため、chr(65)
の結果としてA
が返されます。
ord()
関数の基本的な使い方
ord()
関数は文字を受け取り、それに対応するUnicodeコードポイントを返します。以下は基本的な使い方の例です。
# 文字からUnicodeコードポイントへの変換 ord_result = ord('A') # 文字Aに対応するUnicodeコードポイントを取得 print(ord_result) # 出力: 65
この例では、文字A
に対応するUnicodeコードポイントが65であるため、ord('A')
の結果として65
が返されます。
Unicodeコードポイント範囲の指定
chr()
関数やord()
関数は単一のUnicodeコードポイントだけでなく、範囲を指定して複数の変換も行えます。以下は範囲指定の例です。
# Unicodeコードポイントの範囲から文字列への変換 char_range_result = ''.join(chr(i) for i in range(65, 91)) # Unicodeコードポイント65から90までの文字列 print(char_range_result) # 出力: ABCDEFGHIJKLMNOPQRSTUVWXYZ # 文字列からUnicodeコードポイントの範囲への変換 ord_range_result = [ord(char) for char in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'] print(ord_range_result) # 出力: [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
この例では、chr()
関数を使用してUnicodeコードポイント65から90までの文字列を生成し、ord()
関数を使用してその逆の操作を行っています。
Unicodeエスケープの利用
chr()
関数を使用するとUnicodeエスケープを利用して直接特定の文字を生成することもできます。
unicode_escape_result = '\u0041' # Unicodeエスケープを使用して文字Aを生成 print(unicode_escape_result) # 出力: A
この例では、Unicodeエスケープ \u0041
を使用して文字A
を生成しています。
Unicodeコードポイントの取得
文字列内の各文字に対してUnicodeコードポイントを取得する方法もあります。
string_to_ord_list = [ord(char) for char in "Hello, World!"] print(string_to_ord_list) # 出力: [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]
この例では、文字列"Hello, World!"内
の各文字に対してord()
関数を適用し、Unicodeコードポイントのリストを得ています。
まとめ
この記事では、Pythonのchr()
とord()
関数について詳しく解説しました。これらの関数を使うことで、Unicodeコードポイントと文字の変換が簡単に行えます。Unicodeエスケープや範囲指定を駆使して、様々な文字に対する処理を効率的に行うことができます。是非、自分のプロジェクトやコードで活用してみてください。