Как получить значение ASCII символа?
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()
не дает вам значение ASCII как таковое; он дает вам числовое значение символа в любой кодировке, в которой он находится. Поэтому результат ord('ä')
может быть 228, если вы используете латинский-1, или он может поднять TypeError
Если вы используете UTF-8. Он даже может вернуть кодовую точку Unicode, если вы передадите ей unicode:
>>> ord(u'あ')
12354
принятый ответ правильный, но есть более умный/эффективный способ сделать это, если вам нужно преобразовать целую кучу символов 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 стиль