Da aqui:
função ord() obteria o valor int do char. E no caso de você querer converter de volta depois de jogar com o número, a função chr() faz o truque.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
Em Python 2, há também a função unichr
, retornando o personagem Unicode cujo ordinal é o argumento unichr
:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
Em Python 3 você pode utilizar chr
ao invés de unichr
.
Note que ord()
não lhe dá o valor ASCII per se; ele lhe dá o valor numérico do caractere em qualquer codificação em que ele esteja. Portanto o resultado de ord('ä')
pode ser 228 se você estiver utilizando Latin-1, ou pode aumentar um TypeError
se você estiver utilizando UTF-8. Ele pode até mesmo retornar o codepoint Unicode se você o passar um unicode:
>>> ord(u'あ')
12354