Otsuhachi’s diary

プログラミングのことや覚書などその他いろいろ

当ブログの内容を使用したり参考にした場合に生じた問題の責任は負いかねます。

Python組み込み関数8 -chr・ord編-

Pythonおさらい第8段
制約として公式ドキュメントのみ参照*1として、読む癖をつける訓練も兼ねる。

今回はchr関数ord関数の2種類について。
chr整数に対応する文字を返し、ordはその逆に文字に対応する整数を返す。
整数と文字の対応はUnicodeで参照しているらしい。

内容的にはそれで全部な気がするので、蛇足がいらなければここで終了、解散!

読み込むドキュメントはこちら[chr, ord]

構成

今回の関数は以下のようになっている。

chr(i)

ord(c)

iint型, cstr型1を表す。

使ってみる

を表示させてみることにする。
また、変換前の整数については16進数で表す。

実行するコードは以下の通り。

for i in range(ord('あ'), ord('ん') + 1):
    print(f'{i:X} -> {chr(i)}')

長いので飛ばす

3042 -> あ
3043 -> ぃ
3044 -> い
3045 -> ぅ
3046 -> う
3047 -> ぇ
3048 -> え
3049 -> ぉ
304A -> お
304B -> か
304C -> が
304D -> き
304E -> ぎ
304F -> く
3050 -> ぐ
3051 -> け
3052 -> げ
3053 -> こ
3054 -> ご
3055 -> さ
3056 -> ざ
3057 -> し
3058 -> じ
3059 -> す
305A -> ず
305B -> せ
305C -> ぜ
305D -> そ
305E -> ぞ
305F -> た
3060 -> だ
3061 -> ち
3062 -> ぢ
3063 -> っ
3064 -> つ
3065 -> づ
3066 -> て
3067 -> で
3068 -> と
3069 -> ど
306A -> な
306B -> に
306C -> ぬ
306D -> ね
306E -> の
306F -> は
3070 -> ば
3071 -> ぱ
3072 -> ひ
3073 -> び
3074 -> ぴ
3075 -> ふ
3076 -> ぶ
3077 -> ぷ
3078 -> へ
3079 -> べ
307A -> ぺ
307B -> ほ
307C -> ぼ
307D -> ぽ
307E -> ま
307F -> み
3080 -> む
3081 -> め
3082 -> も
3083 -> ゃ
3084 -> や
3085 -> ゅ
3086 -> ゆ
3087 -> ょ
3088 -> よ
3089 -> ら
308A -> り
308B -> る
308C -> れ
308D -> ろ
308E -> ゎ
308F -> わ
3090 -> ゐ
3091 -> ゑ
3092 -> を
3093 -> ん

今回の出力はここの表と対応しているのがわかる。

ordで取得できる整数は、4桁の16進数に変換して'\uXXXX'とすることでユニコードエスケープとして使用できる。
さらにchr0xXXXXを調べることで元の文字を調べることもできる。
'\uXXXX'のような文字列を見かけた際は試してもいいかもしれない。

締め

今回紹介した関数はいまいち使いどころや魅力がよくわかっていない。

一応、上の例のように数字では範囲がよくわからないrangeで指定することができているが、シンプルな50音を取得できているわけではないので、実用性という点では首を捻らざるを得ない。
AZであれば指定できるが……。
サニタイズや暗号化で使用するのだろうか……。
いまいち締まらないが、これ以上のことを書くこともできないのでこれにて。

Pythonではchar型が存在しないため


  1. ただし1文字である必要がある

*1:わかりやすく解説している他サイトを見ない