Как получить значение ASCII символа?

Как сделать ASCII значение символа как int на Python?

4 ответов


С здесь:

функция ord () получит значение int из Чара. И на случай, если ты захочешь преобразовать обратно после игры с количество, функция chr() делает трюк.

>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>

в Python 2 также есть :

>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'

в Python 3 вы можете использовать chr вместо unichr.


ord () - Python 3.6.5rc1 документация

ord () - Python 2.7.14 документация


отметим, что ord() не дает вам значение ASCII как таковое; он дает вам числовое значение символа в любой кодировке, в которой он находится. Поэтому результат ord('ä') может быть 228, если вы используете латинский-1, или он может поднять TypeError Если вы используете UTF-8. Он даже может вернуть кодовую точку Unicode, если вы передадите ей unicode:

>>> ord(u'あ')
12354

вы ищете:

ord()

принятый ответ правильный, но есть более умный/эффективный способ сделать это, если вам нужно преобразовать целую кучу символов ASCII в их коды ASCII сразу. Вместо этого:

for ch in mystr:
    code = ord(ch)

или немного быстрее:

for code in map(ord, mystr):

вы конвертируете в собственные типы Python, которые выполняют итерацию кодов напрямую. На Python 3, это тривиально:

for code in mystr.encode('ascii'):

и на Python 2.6 / 2.7 это только немного больше, потому что у него нет Py3 стиль