Pythonでの文字とアスキーコードの変換
pythonでは文字に対する計算はできない。
基本計算する必要もないと思うのだけれど、文字をシフト値に応じて変換したかったり、何番目のアルファベットかという事を知りたかったりという事もたまにある。
そんな時はord()関数を使うと文字をアスキーコードに変換、chr()関数を使うとアスキーコードを文字に変換できる。ord()は長さ一文字の文字列しか扱えない。
例:
print(chr(ord('a')+2))
c
ちなみにord()は長さ一文字の文字列しか扱えないので、こんな感じの関数を用意しておいても便利かもしれない。
def shiftchr(str,shift): s=''.join([chr(ord(t)+shift) for t in str]) return s s=shiftchr('abc',1) print(s)
bcd
(…そもそも探せば便利な関数ありそう)
ord()を使った問題。
atcoder.jp
おまけ、アルファベットの列挙。
chars=[chr(ord('a')+i) for i in range(26)]