Python

【Python】文字コードを取得する

この記事では、Pythonの文字から文字コードを取得する方法を解説します。パソコンには文字という概念はありません。文字は「文字コード」と呼ばれる整数で表現されています。ではなぜ文字が表示できるかというと、出力する際にUnicodeを元に文字という記号に変換しているからです。

それでは、文字から文字コードを取得する方法と、文字コードから文字を取得する方法を見ていきましょう!

文字から文字コードを取得する

書式

文字から文字コードを取得するには、ord関数を使います。ord関数は、引数に指定された文字の文字コードを返します。

ord(char)

引数に文字を1文字だけ入力して使用します。

サンプル

試しに文字コードを出力してみます。

print(f'文字: a、 文字コード: {ord("a")}')
print(f'文字: あ、 文字コード: {ord("あ")}')
print(f'文字: !、 文字コード: {ord("!")}')

実行結果

文字: a、 文字コード: 97
文字: あ、 文字コード: 12356
文字: !、 文字コード: 33

文字コード から文字を取得

書式

文字コードから文字を取得するには、chr関数を使います。chr関数は引数に渡された整数を文字に変換して返します。整数の有効範囲は0~1114111です。

chr(i)

範囲外の値が指定された場合はValueErrorが送出されます。

サンプル

試しに先ほどのコードで取得した文字コードを文字に変換してみます。

a = ord('a')
あ = ord('あ')
surprised = ord('!')

print(f'文字コード: {a}, 文字: {chr(a)}')
print(f'文字コード: {あ}, 文字: {chr(あ)}')
print(f'文字コード: {surprised}, 文字: {chr(surprised)}')

実行結果

文字コード: 97, 文字: a
文字コード: 12354, 文字: あ
文字コード: 33, 文字: !

文字列の比較

文字は文字コードで比較されます。

c1 = 'a'
c2 = 'b'

print(f'{c1}({ord(c1)}) < {c2}({ord(c2)})')
print(c1 < c2)

実行結果

a(97) < b(98)
True

文字列の場合は、一文字目が比較されます。1文字目が同じ場合は、二文字目、三文字目と順番に比較されます。

s1 = 'abc'
s2 = 'abd'

print(s1 < s2)

実行結果

True
【おすすめ】Python参考書