Chr: примеры (PYTHON)

Работа с функцией chr в Python: руководство с примерами
Раздел: Встроенные функции, Преобразование типов
chr(i): str

Функция chr в Python: основы

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

Функция принимает один обязательный аргумент:

  • i - целое число в диапазоне от 0 до 1114111 (0x10FFFF в шестнадцатеричной системе). Это число представляет собой код символа в стандарте Unicode.

Возвращаемым значением является строка длиной в один символ, соответствующая указанному коду Unicode. Если аргумент выходит за допустимые границы, возникает исключение ValueError.

Примеры использования chr

print(chr(65))
A
print(chr(945))
α
print(chr(128512))
????
# Использование шестнадцатеричного представления
print(chr(0x41))
A

Схожие функции в Python

В Python существует функция ord(), выполняющая обратную операцию - возвращает код Unicode для указанного символа. Еще одна связанная функция - ascii(), возвращающая строковое представление объекта с экранированием не-ASCII символов.

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

Аналоги в других языках

JavaScript: String.fromCharCode() преобразует коды Unicode в символы, но работает с кодами UTF-16.

console.log(String.fromCharCode(65));
A

Java: Character.toString() или приведение типа.

System.out.println(Character.toString(65));
A

PHP: функция chr() работает с кодами ASCII, а для Unicode используется mb_chr().

echo chr(65);
A

C#: метод Convert.ToChar() или приведение типа.

Console.WriteLine((char)65);
A

Golang: используется приведение типа rune.

fmt.Println(string(rune(65)))
A

Основное отличие Python - работа с полным диапазоном Unicode напрямую, в то время как некоторые другие языки оперируют кодами UTF-16 или ограничены ASCII.

Типичные ошибки

1. Передача числа вне диапазона:

print(chr(-1))
ValueError: chr() arg not in range(0x110000)

2. Передача нецелочисленного аргумента:

print(chr('A'))
TypeError: an integer is required (got type str)

3. Ожидание, что функция работает с кодами ASCII, превышающими 127, без учета кодировки: В Python 3 функция корректно обрабатывает все коды Unicode, но при выводе в консоли могут возникнуть проблемы с отображением, если консоль не поддерживает символ.

Изменения в последних версиях

Функция chr() не претерпела существенных изменений в последних версиях Python. Начиная с Python 3.0, функция всегда возвращает строку в кодировке Unicode, что соответствует стандартной работе с текстом в третьей версии языка. В Python 2 существовала аналогичная функция, но она работала с кодами ASCII и возвращала символ в виде строки байтов.

Расширенные примеры

Генерация алфавита:

Пример python
alphabet = [chr(i) for i in range(ord('A'), ord('Z')+1)]
print(''.join(alphabet))
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Создание строки из списка кодов:

Пример python
codes = [72, 101, 108, 108, 111]
greeting = ''.join(chr(code) for code in codes)
print(greeting)
Hello

Обработка символов, не входящих в базовую плоскость Unicode:

Пример python
# Символ музыкального ключа (U+1D11E)
print(chr(0x1D11E))
????

Использование с функциями форматирования:

Пример python
for i in range(0x2600, 0x2605):
    print(f'Код {i:#x} -> {chr(i)}')
Код 0x2600 -> ☀
Код 0x2601 -> ☁
Код 0x2602 -> ☂
Код 0x2603 -> ☃
Код 0x2604 -> ☄

Проверка на допустимость символа перед преобразованием:

Пример python
def safe_chr(num):
    try:
        return chr(num)
    except ValueError:
        return None

print(safe_chr(999999))
None

питон chr function comments

En
Chr Return character for Unicode code point