概要

Pythonord関数は、指定した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)) # 出力: '😊'

ordchrを組み合わせることで、文字とコードポイント間の変換を双方向に行うことが可能です。

使用例: Unicodeを使ったデータ操作

ord関数を使うことで、文字列を内部的な整数表現に変換し、それを使って文字列操作を行うことができます。例えば、各文字のUnicodeコードポイントを取得して処理する場合などです。

text = "Hello"
codes = [ord(char) for char in text]
print(codes)  # 出力: [72, 101, 108, 108, 111]

この例では、文字列"Hello"の各文字がUnicodeコードポイントのリストに変換されています。

まとめ

Pythonord関数は、1文字の文字を対応するUnicodeコードポイントに変換するシンプルかつ強力なツールです。これにより、プログラム内で文字の内部的な表現を直接操作でき、文字列処理や国際化対応に役立ちます。また、ord関数はUnicodeの理解を深める助けにもなりますので、Pythonで文字を扱う際にはぜひ活用してみてください。