Преобразование символов в числовое представление и обратно с помощью функций ord() и chr() в Python
Функции ord()
и chr()
- это встроенные функции в Python, которые предоставляют возможность преобразования символов в их числовое представление и обратно. Эти функции широко используются при работе с символами и строками, и они могут быть полезны во многих сценариях программирования.
В этой статье мы рассмотрим функции ord()
и chr()
подробнее и приведем примеры их использования.
Синтаксис функции ord()
ord(char)
Где:
char
: мы должны передать один символ (char) для получения его целочисленного значения.
Синтаксис функции chr()
chr(int)
Где:
int
: принимает одно целочисленное значение и возвращает символ Unicode, соответствующий этому числу.
Использование функции ord()
Функция ord()
принимает один символ в качестве аргумента и возвращает соответствующее ему целочисленное значение Unicode. Это значение может быть использовано для кодирования символа в другом формате или при работе с символами на уровне битовых операций.
Вот несколько примеров использования ord():
print(ord('A')) # 65
print(ord('B')) # 66
print(ord('a')) # 97
print( ord('€')) # 8364
Использование функции chr()
Функция chr()
принимает одно целочисленное значение и возвращает символ Unicode, соответствующий этому числу. Также, как и ord()
, chr()
может быть полезна при работе с текстовыми данными или Unicode-символами.
Вот несколько примеров использования chr():
print(chr(65)) # 'A'
print(chr(66)) # 'B'
print(chr(97)) # 'a'
print(chr(8364)) # '€'
Кодирование и декодирование строк
Обе функции могут быть использованы для кодирования и декодирования строк. Например, чтобы закодировать строку в ASCII, можно использовать функцию ord()
для получения числового значения каждого символа в строке, а затем преобразовать эти значения в байты с помощью метода bytes()
.
Вот пример кодирования строки Hello, world!
в ASCII:
message = "Hello, world!"
encoded_message = bytes([ord(c) for c in message])
print(encoded_message) # b'Hello, world!'
А для декодирования этой строки обратно в символы можно использовать функцию chr()
в цикле для преобразования каждого байта в символ Unicode:
decoded_message = ''.join([chr(b) for b in encoded_message])
print(decoded_message) # 'Hello, world!'
decoded_message = encoded_message.decode()
print(decoded_message)# 'Hello, world!'
Заключение
Функции ord()
и chr()
представляют собой мощные инструменты для работы с символами и числовыми значениями в Python. Они позволяют конвертировать символы в их числовые представления и наоборот, что может быть полезно при работе с различными кодировками, текстовыми данными и Unicode-символами.