NaaN日記

やったこと、覚えたことを発信する場

Unicodeを少し(Python)

ord(c)とは

1 文字の Unicode 文字を表す文字列に対し、その文字の Unicode コードポイントを表す整数を返します。
例えば、 ord('a') は整数 97 を返し、 ord('€') (ユーロ記号) は 8364 を返します。これは chr() の逆です。
(Python標準ライブラリの説明より)

使ってみる

>>>ord('宴')
23476
chr(i)とは

Unicode コードポイントが整数 i である文字を表す文字列を返します。
例えば chr(97) は文字列 'a' を、 chr(8364) は文字列 '€' を返します。 ord() の逆です。
引数の有効な範囲は 0 から 1,114,111 (16 進数で 0x10FFFF) です。 i が範囲外の場合 ValueError が送出されます。
(Python標準ライブラリの説明より)

先程の整数を入れてみる

>>>chr(23476)
'宴'
文字をずらしてみる
moji = input()   #文字を入力
shift = int(input())   #いくつ後ろにずらすか
result = ""
for act in moji:
    num = ord(act)   #文字コード
    shifted = chr(num + shift)   #文字にする
    result += shifted
print(result)

>>>Khoor
>>>-3
'Hello'


chr()の中に色々な数字入れたくなるよね