Документация Python неофициальный перевод

unicodedata.md

160 строк · 11.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.14/library/unicodedata.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `unicodedata` – база данных Unicode89---1011Этот модуль предоставляет доступ к базе данных символов Unicode (UCD), которая определяет свойства символов для всех символов Unicode. Данные, содержащиеся в этой базе, скомпилированы из [UCD версии 16.0.0](https://python-all.ru/3.14/library/unicodedata.html).1213Модуль использует те же имена и символы, что определены в приложении №44 к стандарту Unicode, [«Unicode Character Database»](https://python-all.ru/3.14/library/unicodedata.html). Он определяет следующие функции:1415> **См. также**16>17> Дополнительную информацию о Unicode и о том, как использовать этот модуль, см. в [Unicode HOWTO](https://python-all.ru/3.14/howto/unicode.html#unicode-howto).1819#### `unicodedata.lookup(name)`2021Ищет символ по имени. Если символ с указанным именем найден, возвращает соответствующий символ. Если не найден, возбуждается [`KeyError`](https://python-all.ru/3.14/library/exceptions.html#KeyError). Например:2223```python24>>> unicodedata.lookup('LEFT CURLY BRACKET')25'{'26```2728Символы, возвращаемые этой функцией, совпадают с теми, которые создаются управляющей последовательностью `\N` в строковых литералах. Например:2930```python31>>> unicodedata.lookup('MIDDLE DOT') == '\N{MIDDLE DOT}'32True33```3435Изменено в версии 3.3: добавлена поддержка псевдонимов имён [\[1\]](https://python-all.ru/3.14/library/unicodedata.html#id3) и именованных последовательностей [\[2\]](https://python-all.ru/3.14/library/unicodedata.html#id4).3637#### `unicodedata.name(chr, default=None, /)`3839Возвращает имя, присвоенное символу *chr*, в виде строки. Если имя не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError). Например:4041```python42>>> unicodedata.name('½')43'VULGAR FRACTION ONE HALF'44>>> unicodedata.name('\uFFFF', 'fallback')45'fallback'46```4748#### `unicodedata.decimal(chr, default=None, /)`4950Возвращает десятичное значение, присвоенное символу *chr*, в виде целого числа. Если такое значение не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError). Например:5152```python53>>> unicodedata.decimal('\N{ARABIC-INDIC DIGIT NINE}')54955>>> unicodedata.decimal('\N{SUPERSCRIPT NINE}', -1)56-157```5859#### `unicodedata.digit(chr, default=None, /)`6061Возвращает значение цифры, присвоенное символу *chr*, в виде целого числа. Если такое значение не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError):6263```python64>>> unicodedata.digit('\N{SUPERSCRIPT NINE}')65966```6768#### `unicodedata.numeric(chr, default=None, /)`6970Возвращает числовое значение, присвоенное символу *chr*, в виде числа с плавающей запятой. Если такое значение не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError):7172```python73>>> unicodedata.numeric('½')740.575```7677#### `unicodedata.category(chr)`7879Возвращает общую категорию, присвоенную символу *chr*, в виде строки. Имена общих категорий состоят из двух букв. Список кодов категорий см. в разделе [General Category Values документации базы данных символов Unicode](https://python-all.ru/3.14/library/unicodedata.html). Например:8081```python82>>> unicodedata.category('A')  # 'L' – буква, 'u' – заглавная83'Lu'84```8586#### `unicodedata.bidirectional(chr)`8788Возвращает класс двунаправленности, присвоенный символу *chr*, в виде строки. Если такое значение не определено, возвращается пустая строка. Список кодов двунаправленности см. в разделе [Bidirectional Class Values документации базы данных символов Unicode](https://python-all.ru/3.14/library/unicodedata.html). Например:8990```python91>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A' – арабская, 'N' – число92'AN'93```9495#### `unicodedata.combining(chr)`9697Возвращает канонический класс комбинирования, присвоенный символу *chr*, в виде целого числа. Возвращает `0`, если класс комбинирования не определен. Дополнительную информацию см. в разделе [Canonical Combining Class Values базы данных символов Unicode](https://python-all.ru/3.14/library/unicodedata.html).9899#### `unicodedata.east_asian_width(chr)`100101Возвращает ширину восточноазиатского символа, присвоенную символу *chr*, в виде строки. Список значений ширины и дополнительную информацию см. в [Unicode Standard Annex #11](https://python-all.ru/3.14/library/unicodedata.html).102103#### `unicodedata.mirrored(chr)`104105Возвращает свойство зеркальности, присвоенное символу *chr*, в виде целого числа. Возвращает `1`, если символ определен как «зеркальный» в двунаправленном тексте, и `0` в противном случае. Например:106107```python108>>> unicodedata.mirrored('>')1091110```111112#### `unicodedata.decomposition(chr)`113114Возвращает отображение разложения символа, присвоенное символу *chr*, в виде строки. Если такое отображение не определено, возвращается пустая строка. Например:115116```python117>>> unicodedata.decomposition('Ã')118'0041 0303'119```120121#### `unicodedata.normalize(form, unistr)`122123Возвращает нормальную форму *form* для строки Unicode *unistr*. Допустимые значения *form*: ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.124125Стандарт Unicode определяет различные нормальные формы строки Unicode на основе определений канонической эквивалентности и эквивалентности совместимости. В Unicode одни и те же символы могут быть представлены по-разному. Например, символ U+00C7 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C С СЕДИЛЬЮ) может также быть представлен как последовательность U+0043 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C) U+0327 (СОЕДИНИТЕЛЬНАЯ СЕДИЛЬ).126127Для каждого символа существует две нормальные формы: форма C и форма D. Нормальная форма D (NFD) также известна как каноническая декомпозиция и преобразует каждый символ в его разложенную форму. Нормальная форма C (NFC) сначала применяет каноническую декомпозицию, а затем снова составляет предварительно составные символы.128129В дополнение к этим двум формам существуют ещё две нормальные формы, основанные на совместимой эквивалентности. В Unicode поддерживаются некоторые символы, которые обычно были бы объединены с другими символами. Например, U+2160 (РИМСКАЯ ЦИФРА ОДИН) на самом деле то же самое, что и U+0049 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА I). Однако он поддерживается в Unicode для совместимости с существующими наборами символов (например, gb2312).130131Нормальная форма KD (NFKD) применяет совместимую декомпозицию, то есть заменяет все совместимые символы на их эквиваленты. Нормальная форма KC (NFKC) сначала применяет совместимую декомпозицию, а затем каноническую композицию.132133Даже если две строки Unicode нормализованы и выглядят одинаково для человеческого глаза, но одна содержит комбинируемые символы, а другая нет, они могут не быть равными при сравнении.134135#### `unicodedata.is_normalized(form, unistr)`136137Возвращает, находится ли строка Unicode *unistr* в нормальной форме *form*. Допустимые значения для *form*: 'NFC', 'NFKC', 'NFD' и 'NFKD'.138139Добавлено в версии 3.8.140141Кроме того, модуль предоставляет следующую константу:142143#### `unicodedata.unidata_version`144145Версия базы данных Unicode, используемая в этом модуле.146147#### `unicodedata.ucd_3_2_0`148149Это объект, который имеет те же методы, что и весь модуль, но использует версию базы данных Unicode 3.2 для приложений, которым требуется эта конкретная версия базы данных Unicode (например, IDNA).150151Сноски152153\[[1](https://python-all.ru/3.14/library/unicodedata.html#id1)\]154155[https://www.unicode.org/Public/16.0.0/ucd/NameAliases.txt](https://python-all.ru/3.14/library/unicodedata.html)156157\[[2](https://python-all.ru/3.14/library/unicodedata.html#id2)\]158159[https://www.unicode.org/Public/16.0.0/ucd/NamedSequences.txt](https://python-all.ru/3.14/library/unicodedata.html)160