Автор оригинала: Pankaj Kumar.
Python Chr () и Ord ()
Встроенная функция Python chr () используется для преобразования Целое число к Персонаж , пока функция Орд () используется для выполнения обратного, то есть конвертировать Персонаж к Целое число Отказ
Давайте посмотрим как на эти функции, и понять, как их можно использовать.
Функция Chr ()
Синтаксис
Это занимает целое число Я
и преобразует его на символ C
Так что возвращает строку символов.
Формат:
c = chr(i)
Вот пример, чтобы продемонстрировать то же самое:
# Convert integer 65 to ASCII Character ('A') y = chr(65) print(type(y), y) # Print A-Z for i in range(65, 65+25): print(chr(i), end = " , ")
Выход
A A , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z
Допустимый диапазон для аргумента составляет от 0 до 1,114,111 (0x10FFFF в шестнадцатеричном виде). ValueError
будет поднят, если целое число Я находится за пределами этого диапазона.
Давайте проверим, что с некоторыми примерами
print(chr(-1))
Это поднимет ValueError
Отказ
ValueError: chr() arg not in range(0x110000)
start = 0 end = 1114111 try: for i in range(start, end+2): a = chr(i) except ValueError: print("ValueError for i =", i)
Выход
ValueError for i = 1114112
Функция ORD ()
Орд () Функция принимает строковый аргумент одного символа Unicode и возвращает его целое значение кодового значения Unicode. Это делает реверс chr ()
Отказ
Синтаксис
Это принимает один символ Unicode (строка длины 1) и возвращает целое число, поэтому формат:
i = ord(c)
Чтобы убедиться, что он делает реверс chr ()
Давайте проверим функцию, используя некоторые примеры.
# Convert ASCII Unicode Character 'A' to 65 y = ord('A') print(type(y), y) alphabet_list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # Print 65-90 for i in alphabet_list: print(ord(i), end = " , ")
Выход
65 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 ,
Это поднимает Типеррор
Если длина входной строки не равна одному.
y = ord('Hi')
Выход
TypeError: ord() expected a character, but string of length 2 found
Прохождение шестнадцатеричных данных
Мы также можем пройти целые числа, представленные в других общих базах, таких как шестнадцатеричный формат (база 16) до chr () и Орд () Отказ
В Python мы можем использовать шестнадцатеричное средство, префиксировав целое число с 0x
, при условии, что он находится в пределах 32/64 бита для целочисленных значений.
>>> print(hex(18)) '0x12' >>> print(chr(0x12)) '\x12' >>> print(ord('\x12')) 18 >>> print(int('\x12')) 18
Мы проходим целое число 18 В шестнадцатеричном формате до chr ()
, который возвращает шестнадцатеричное 0x12
Отказ Мы проходим это к chr ()
и использовать Орд ()
вернуть наше целое число.
Обратите внимание, что мы также могли бы получить целое число, используя int ()
, Поскольку одна строка символов также является строкой, которая может быть допустимым параметром к вышеуказанной функции.
Заключение
В этой статье мы узнали об использовании chr ()
и Орд ()
Чтобы преобразовать целые числа персонажам и наоборот.
Рекомендации
- Документация Python для chr ()
- Документация Python для ордина ()
- Journaldev Статья