【Python】ord()を使って文字をUnicodeに変換!
Pythonのord()を使用すると指定した文字をUnicodeに変換することができます。
ord()とは指定した文字をUnicode値に返す関数であり、「あ」という文字を「12354」というUnicode値に変換して取得することができます。
そして、ord()のパラメータである文字は1文字のみであり、2文字以上の文字を指定するとエラーが発生します。
また、ord()とmap()を組み合わせて使用することで、文字をUnicodeにまとめて変換することができるのでとても便利です。
今回はPythonのord()で文字をUnicodeに変換する方法について以下の内容で解説していきます。
⚫︎ 1文字の文字列を指定する場合
⚫︎ 2文字以上の文字列を指定する場合
⚫︎ 文字をUnicodeにまとめて変換する方法
⚫︎ Unicodeに変換した値を文字に戻す方法
目次
ord()とは
ord()とは、指定した文字をUnicodeの値で返す関数となります。
ord()の書き方
ord()の書き方は下記となります。
1 |
ord('変換する文字') |
ord()のパラメータ
⚫︎ 変換したい文字:
Unicodeに変換したい文字を指定する
ord()に変換する文字を指定することで、指定した文字をUnicodeに変換して返します。
文字をUnicodeに変換するサンプルコード
文字をUnicodeに変換するサンプルコードを紹介します。
1文字の文字を指定する場合
ord()を使って1文字の文字を指定すると指定した文字をUnicodeに変換します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
print('ord()で文字をUnicodeに変換') string1 = 'あ' print('・変換前:', string1) string1_u = ord(string1) print('・変換後:', string1_u) string2 = 'ア' print('・変換前:', string2) string2_u = ord(string2) print('・変換後:', string2_u) string3 = 'a' print('・変換前:', string3) string3_u = ord(string3) print('・変換後:', string3_u) string4 = '1' print('・変換前:', string4) string4_u = ord(string4) print('・変換後:', string4_u) |
出力結果
ord()で文字をUnicodeに変換
・変換前: あ
・変換後: 12354
・変換前: ア
・変換後: 12450
・変換前: a
・変換後: 97
・変換前: 1
・変換後: 49
ord()によって指定した文字がUnicodeに変換されてます。
2文字以上の文字を指定する場合
ord()を使って2文字以上の文字を指定するとエラーが発生します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
print('ord()で文字をUnicodeに変換') string1 = 'あい' print('・変換前:', string1) string1_u = ord(string1) print('・変換後:', string1_u) string2 = 'アイ' print('・変換前:', string2) string2_u = ord(string2) print('・変換後:', string2_u) string3 = 'ai' print('・変換前:', string3) string3_u = ord(string3) print('・変換後:', string3_u) string4 = '12' print('・変換前:', string4) string4_u = ord(string4) print('・変換後:', string4_u) |
出力結果
TypeError: ord() expected a character, but string of length 2 found
ord()のパラメータに2文字以上の文字を指定できませんのでエラーが発生しています。
文字をUnicodeにまとめて変換する方法
map()と組み合わせて使用することで、文字をUnicodeにまとめて変換することができます。
もし、map()について詳しく知りたい場合はこちらをご参考ください。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
print('ord()で文字をUnicodeにまとめて変換') list1 = ['あ', 'い', 'う', 'え', 'お'] print('・変換前:', list1) list1_u = list(map(ord, list1)) print('・変更後:', list1_u) list2 = ['不', '動', '明', '王'] print('・変換前:', list2) list2_u = list(map(ord, list2)) print('・変更後:', list2_u) |
出力結果
ord()で文字をUnicodeにまとめて変換
・変換前: [‘あ’, ‘い’, ‘う’, ‘え’, ‘お’]
・変更後: [12354, 12356, 12358, 12360, 12362]
・変換前: [‘不’, ‘動’, ‘明’, ‘王’]
・変更後: [19981, 21205, 26126, 29579]
ord()とmap()を組み合わせることによって文字をUnicodeにまとめて変換しています。
これだと、ord()を何回も使用しなくて済むので便利です。
Unicodeに変換した値を文字に戻す方法
ord()でUnicodeに変換した値を文字に戻すにはchr()を使用します。
chr()は文字列の左端の不要な文字を削除するメソッドとなります。
例
1 2 3 4 5 6 7 8 |
string1 = 'あ' print('・変換前:', string1) string1_u = ord(string1) print('・変換後:', string1_u) print('chr()でUnicodeに変換した値を文字に戻す') string1_c = chr(string1_u) print('・chr()使用後:', string1_c) |
出力結果
・変換前: あ
・変換後: 12354
chr()でUnicodeに変換した値を文字に戻す
・chr()使用後: あ
chr()でUnicodeに変換した値を文字に戻しています。
今回のポイント
ord()で文字をUnicodeに変換
Pythonで文字をUnicodeに変換するにはord()を使用する。
⚫︎ ord()のパラメータにはUnicodeに変換したい文字を指定する
⚫︎ ord()を使って1文字の文字を指定すると指定した文字をUnicodeに変換することができる
(2文字以上の文字を指定するとエラーが発生する)
⚫︎ ord()はmap()と組み合わせて使用すると、文字をUnicodeにまとめて変換することができる
⚫︎ Unicodeに変換した値を文字に戻すにはchr()を使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。