> **Источник:** https://python-all.ru/3.3/library/curses.ascii.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 16.13. [`curses.ascii`](https://python-all.ru/3.3/library/curses.ascii.html#module-curses.ascii) – Утилиты для работы с символами ASCII

Модуль [`curses.ascii`](https://python-all.ru/3.3/library/curses.ascii.html#module-curses.ascii) предоставляет именованные константы для ASCII-символов и функции для проверки принадлежности к различным классам ASCII-символов. Приведённые константы являются названиями управляющих символов:

| Имя | Значение |
| --- | --- |
| `NUL` |  |
| `SOH` | Начало заголовка, прерывание консоли |
| `STX` | Начало текста |
| `ETX` | Конец текста |
| `EOT` | Конец передачи |
| `ENQ` | Запрос (Enquiry), используется вместе с `ACK` для управления потоком |
| `ACK` | Подтверждение |
| `BEL` | Звонок |
| `BS` | Возврат на шаг |
| `TAB` | Табуляция |
| `HT` | Псевдоним для `TAB`: “Horizontal tab” |
| `LF` | Перевод строки |
| `NL` | Псевдоним для `LF`: “New line” |
| `VT` | Вертикальная табуляция |
| `FF` | Перевод страницы |
| `CR` | Возврат каретки |
| `SO` | Shift-out, начало альтернативного набора символов |
| `SI` | Shift-in, возврат к стандартному набору символов |
| `DLE` | Управляющий символ канала передачи данных |
| `DC1` | XON, для управления потоком |
| `DC2` | Управление устройством 2, управление потоком в блочном режиме |
| `DC3` | XOFF, для управления потоком |
| `DC4` | Управление устройством 4 |
| `NAK` | Отрицательное подтверждение |
| `SYN` | Синхронный холостой ход |
| `ETB` | Конец блока передачи |
| `CAN` | Отмена |
| `EM` | Конец носителя |
| `SUB` | Замена |
| `ESC` | Escape |
| `FS` | Разделитель файлов |
| `GS` | Разделитель групп |
| `RS` | Разделитель записей, завершитель блочного режима |
| `US` | Разделитель элементов |
| `SP` | Пробел |
| `DEL` | Удаление |

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

Модуль предоставляет следующие функции, созданные по образцу функций из стандартной библиотеки C:

#### `curses.ascii.isalnum(c)`

Проверяет, является ли символ буквой или цифрой в ASCII; эквивалентно `isalpha(c) или isdigit(c)`.

#### `curses.ascii.isalpha(c)`

Проверяет, является ли символ буквой ASCII; эквивалентно `isupper(c) или islower(c)`.

#### `curses.ascii.isascii(c)`

Проверяет, входит ли значение символа в 7-битный набор ASCII.

#### `curses.ascii.isblank(c)`

Проверяет, является ли символ пробельным в ASCII.

#### `curses.ascii.iscntrl(c)`

Проверяет, является ли символ управляющим в ASCII (в диапазоне от 0x00 до 0x1f).

#### `curses.ascii.isdigit(c)`

Проверяет, является ли символ десятичной цифрой ASCII, от `'0'` до `'9'`. Эквивалентно `c в string.digits`.

#### `curses.ascii.isgraph(c)`

Проверяет, является ли символ любым печатным символом ASCII, кроме пробела.

#### `curses.ascii.islower(c)`

Проверяет, является ли символ строчной буквой ASCII.

#### `curses.ascii.isprint(c)`

Проверяет любой печатный символ ASCII, включая пробел.

#### `curses.ascii.ispunct(c)`

Проверяет, является ли символ любым печатным символом ASCII, который не является пробелом или буквенно-цифровым символом.

#### `curses.ascii.isspace(c)`

Проверяет пробельные символы ASCII: пробел, перевод строки, возврат каретки, перевод страницы, горизонтальную табуляцию, вертикальную табуляцию.

#### `curses.ascii.isupper(c)`

Проверяет, является ли символ заглавной буквой ASCII.

#### `curses.ascii.isxdigit(c)`

Проверяет, является ли символ шестнадцатеричной цифрой ASCII. Эквивалентно `c в string.hexdigits`.

#### `curses.ascii.isctrl(c)`

Проверяет, является ли символ управляющим символом ASCII (порядковые значения от 0 до 31).

#### `curses.ascii.ismeta(c)`

Проверяет, является ли символ не-ASCII (порядковые значения 0x80 и выше).

Эти функции принимают целые числа или строки; если аргумент является строкой, он сначала преобразуется с помощью встроенной функции [`ord()`](https://python-all.ru/3.3/library/functions.html#ord).

Обратите внимание, что все эти функции проверяют порядковые значения битов, полученные из первого символа переданной строки; они ничего не знают о кодировке символов хост-машины. Для функций, которые учитывают кодировку символов (и правильно обрабатывают интернационализацию), смотрите модуль [`string`](https://python-all.ru/3.3/library/string.html#module-string).

Следующие две функции принимают либо строку из одного символа, либо целочисленное значение байта; они возвращают значение того же типа.

#### `curses.ascii.ascii(c)`

Возвращает значение ASCII, соответствующее младшим 7 битам *c*.

#### `curses.ascii.ctrl(c)`

Возвращает управляющий символ, соответствующий данному символу (значение бита символа побитово AND с 0x1f).

#### `curses.ascii.alt(c)`

Возвращает 8-битный символ, соответствующий данному символу ASCII (значение бита символа побитово OR с 0x80).

Следующая функция принимает либо строку из одного символа, либо целое число; возвращает строку.

#### `curses.ascii.unctrl(c)`

Возвращает строковое представление ASCII-символа *c*. Если *c* печатаемый, то возвращается сам символ. Если символ является управляющим (0x00–0x1f), строка состоит из символа крышки (`'^'`), за которым следует соответствующая заглавная буква. Если символ – это ASCII-удаление (0x7f), строка равна `'^?'`. Если у символа установлен мета-бит (0x80), он сбрасывается, применяются предыдущие правила, а к результату добавляется префикс `'!'`.

#### `curses.ascii.controlnames`

Массив строк из 33 элементов, содержащий мнемоники ASCII для тридцати двух управляющих символов ASCII от 0 (NUL) до 0x1f (US) по порядку, а также мнемонику `SP` для символа пробела.
