Преобразование символов в числовое представление и обратно с помощью функций ord() и chr() в Python
Python

Преобразование символов в числовое представление и обратно с помощью функций ord() и chr() в Python

Razilator

Функции ord() и chr() - это встроенные функции в Python, которые предоставляют возможность преобразования символов в их числовое представление и обратно. Эти функции широко используются при работе с символами и строками, и они могут быть полезны во многих сценариях программирования.

В этой статье мы рассмотрим функции ord() и chr() подробнее и приведем примеры их использования.

Синтаксис функции ord()

ord(char)

Где:

  • char: мы должны передать один символ (char) для получения его целочисленного значения.

Синтаксис функции chr()

chr(int)

Где:

  • int: принимает одно целочисленное значение и возвращает символ Unicode, соответствующий этому числу.

Использование функции ord()

Функция ord() принимает один символ в качестве аргумента и возвращает соответствующее ему целочисленное значение Unicode. Это значение может быть использовано для кодирования символа в другом формате или при работе с символами на уровне битовых операций.

Вот несколько примеров использования ord():

main.py
print(ord('A')) # 65
print(ord('B')) # 66
print(ord('a')) # 97
print( ord('€')) # 8364

Использование функции chr()

Функция chr() принимает одно целочисленное значение и возвращает символ Unicode, соответствующий этому числу. Также, как и ord(), chr() может быть полезна при работе с текстовыми данными или Unicode-символами.

Вот несколько примеров использования chr():

main.py
print(chr(65)) # 'A' 
print(chr(66)) # 'B'
print(chr(97)) # 'a'
print(chr(8364)) # '€'

Кодирование и декодирование строк

Обе функции могут быть использованы для кодирования и декодирования строк. Например, чтобы закодировать строку в ASCII, можно использовать функцию ord() для получения числового значения каждого символа в строке, а затем преобразовать эти значения в байты с помощью метода bytes().

Вот пример кодирования строки Hello, world! в ASCII:

main.py
message = "Hello, world!"
encoded_message = bytes([ord(c) for c in message])
print(encoded_message) # b'Hello, world!'

А для декодирования этой строки обратно в символы можно использовать функцию chr() в цикле для преобразования каждого байта в символ Unicode:

main.py
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-символами.

;