Comment obtenir la valeur [ASCII][1] d'un caractère sous forme de int
en [Python][2] ?
[1] : http://en.wikipedia.org/wiki/ASCII [2] : http://en.wikipedia.org/wiki/Python_%28programming_language%29
De [ici][1] :
la fonction ord() obtiendrait la valeur int du caractère. Et au cas où vous voudriez reconvertir après avoir joué avec le nombre, la fonction chr() fait l'affaire.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
En Python 2, il y a aussi la fonction unichr
, qui retourne le caractère [Unicode][2] dont l'ordinal est l'argument unichr
:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
En Python 3, vous pouvez utiliser chr
à la place de unichr
.
[ord() - Documentation de Python 3.6.5rc1][3]
[ord() - Documentation Python 2.7.14][4]
[1] : http://mail.python.org/pipermail/python-win32/2005-April/003100.html [2] : http://en.wikipedia.org/wiki/Unicode [3] : https://docs.python.org/3/library/functions.html#ord [4] : https://docs.python.org/2/library/functions.html#ord
Notez que ord()
ne vous donne pas la valeur ASCII en elle-même, mais la valeur numérique du caractère, quel que soit le codage utilisé. Par conséquent, le résultat de ord('ä')
peut être 228 si vous utilisez Latin-1, ou il peut lever un TypeError
si vous utilisez UTF-8. Il peut même retourner le point de code Unicode à la place si vous lui passez un unicode :
>>> ord(u'あ')
12354