/
Вопросы и ответы
/
Python
/

Что такое функция ord и chr в Python?

Что такое функция ord и chr в Python?

4 года назад

Andrey Moshkov

Ответы

1

Функция ord() в Python используется для получения числового значения кода ASCII (или Unicode) символа, переданного ей в качестве аргумента. Например, ord('A') вернет число 65, потому что символ 'A' соответствует коду ASCII 65.

Функция chr(), наоборот, принимает числовое значение кода символа и возвращает сам символ. Например, chr(65) вернет символ 'A', так как код ASCII 65 соответствует символу 'A'.

Эти функции часто используются вместе для работы с символьными данными, такими как текстовые сообщения или обработка символов в строках. Они позволяют конвертировать символы в их числовые представления и наоборот, что делает их добными для работы с символьными данными в Python.

2 года назад

Ivan Mamtsev

1

ord() и chr() — встроенные функции в Python, которые работают с символами Unicode.

ord() принимает строку, содержащую один символ Unicode, и возвращает целое число, представляющее кодовую точку этого символа. Например, ord('A') возвращает 65 — кодовую точку символа «A».

Пример:

1
print(ord('€')) #возвращает 8364

chr() выполняет обратную операцию: принимает целое число и возвращает строку, представляющую символ с заданной кодовой точкой Unicode.

Пример

1
print(chr(8364)) #возвращает '€'

Эти функции необходимы при работе с текстом в Python, особенно при использовании символов разных языков, специальных символов или эмодзи.

2 года назад

Алёна Шереметьева

0

ord() возвращает числовой код символа в Unicode, chr() делает обратное: по коду возвращает символ.

1
2
3
4
print(ord("A"))    # => 65
print(chr(65))     # => A
print(ord("я"))    # => 1103
print(chr(1103))   # => я

Для латиницы и цифр коды совпадают с таблицей ASCII.

Таблица кодов

Символord()
"0"–"9"48–57
"A"–"Z"65–90
"a"–"z"97–122
"А"–"Я"1040–1071
"а"–"я"1072–1103
"ё"1105 — стоит отдельно от алфавита
"€"8364
"😀"128512

Где пригодится

Сдвиг букв, например шифр Цезаря:

1
2
3
4
5
6
7
8
9
10
def caesar(text, shift):
    result = ""
    for ch in text:
        if "a" <= ch <= "z":
            result += chr((ord(ch) - ord("a") + shift) % 26 + ord("a"))
        else:
            result += ch
    return result

print(caesar("hello", 3))  # => khoor

Номер буквы в алфавите:

1
print(ord("c") - ord("a") + 1)  # => 3

Алфавит без ручного перечисления:

1
print([chr(i) for i in range(ord("а"), ord("а") + 5)])  # => ['а', 'б', 'в', 'г', 'д']

Цифру-символ в число:

1
print(ord("7") - ord("0"))  # => 7

Частые ошибки

1
2
ord("ab")
# TypeError: ord() expected a character, but string of length 2 found

ord() принимает ровно один символ. Коды всей строки: [ord(c) for c in "ab"] → [97, 98].

chr() принимает числа от 0 до 1 114 111. Больше — ValueError.

Коды и байты

ord() возвращает номер символа в Unicode. Сколько байт символ займёт в файле, зависит от кодировки: "я".encode("utf-8") → b'\xd1\x8f', 2 байта.

Строки и символы разбирают в бесплатном курсе «Основы Python».

8 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845