概要
Python
のord
関数は、指定した1文字の文字をUnicodeコードポイントに変換するために使用される関数です。Unicodeコードポイントは、文字に割り当てられた一意の整数であり、国際化や異なる言語の文字を扱う際に非常に役立ちます。ord
関数を使うことで、文字を対応する整数値に変換し、その文字が持つ内部的な表現を確認することができます。
構文
ord(文字)
- 文字: 1文字の文字を指定します。複数文字を渡すことはできません。
ord
関数は、その文字のUnicodeコードポイントを整数値として返します。
使用例
基本的な使用例
ord
関数は、1文字の文字をUnicodeコードポイントに変換します。以下の例では、アルファベットや数字の文字をコードポイントに変換しています。
print(ord('A')) # 出力: 65
print(ord('a')) # 出力: 97
print(ord('0')) # 出力: 48
この例では、'A'
のコードポイントは65、'a'
は97、'0'
は48です。これらは、それぞれの文字に対応するASCIIコード(Unicodeの一部)です。
特殊文字のコードポイントを取得する
特殊文字や記号、非英語文字もord
関数でそのUnicodeコードポイントを取得することができます。
print(ord('€')) # 出力: 8364 (ユーロ記号)
print(ord('あ')) # 出力: 12354 (日本語の「あ」)
print(ord('😊')) # 出力: 128522 (絵文字)
このように、さまざまな言語や記号、絵文字などもUnicodeとして一意のコードポイントを持っており、ord
関数でその値を取得できます。
TypeErrorの例
ord
関数には1文字しか渡すことができません。複数文字を渡すとエラーが発生します。
print(ord('AB')) # TypeError: ord() expected a character, but string of length 2 found
上記の例では、2文字の文字列'AB'
を渡しているため、TypeError
が発生しています。
Unicodeとは?
Unicodeは、世界中のさまざまな言語や記号を一つの標準的なシステムで表現するために開発された文字コード体系です。各文字には「コードポイント」と呼ばれる一意の整数値が割り当てられており、これにより異なる言語間でも同じ文字を一貫して表現することができます。
例えば、英語の文字 'A'
にはUnicodeコードポイントU+0041
(十進数では65)が割り当てられており、日本語の「あ」にはU+3042
(十進数では12354)が割り当てられています。ord
関数は、このコードポイントを十進数の整数として返してくれるため、文字とその内部表現を容易に扱うことができます。
文字列とコードポイントの相互変換
ord
関数を使って文字を整数値に変換できる一方で、対応する整数値を文字に戻すためには、chr
関数を使用します。
print(chr(65)) # 出力: 'A'
print(chr(12354)) # 出力: 'あ'
print(chr(128522)) # 出力: '😊'
ord
とchr
を組み合わせることで、文字とコードポイント間の変換を双方向に行うことが可能です。
使用例: Unicodeを使ったデータ操作
ord
関数を使うことで、文字列を内部的な整数表現に変換し、それを使って文字列操作を行うことができます。例えば、各文字のUnicodeコードポイントを取得して処理する場合などです。
text = "Hello"
codes = [ord(char) for char in text]
print(codes) # 出力: [72, 101, 108, 108, 111]
この例では、文字列"Hello"
の各文字がUnicodeコードポイントのリストに変換されています。
まとめ
Python
のord
関数は、1文字の文字を対応するUnicodeコードポイントに変換するシンプルかつ強力なツールです。これにより、プログラム内で文字の内部的な表現を直接操作でき、文字列処理や国際化対応に役立ちます。また、ord
関数はUnicodeの理解を深める助けにもなりますので、Python
で文字を扱う際にはぜひ活用してみてください。