# `curses.ascii` — Utilitários para caracteres ASCII

Código-fonte: Lib/curses/ascii.py

O módulo `curses.ascii` fornece constantes de nome para caracteres ASCII e funções para testar associação em várias classes de caracteres ASCII. As constantes fornecidas são nomes para caracteres de controle, como detalhado a seguir:

Nome | Significado
--- | ---
curses.ascii.NUL |
curses.ascii.SOH | Início do cabeçalho, interrupção do console
curses.ascii.STX | Início de texto
curses.ascii.ETX | Fim de texto
curses.ascii.EOT | Fim de transmissão
curses.ascii.ENQ | Consulta, segue com controle de fluxo `ACK`
curses.ascii.ACK | Confirmação
curses.ascii.BEL | Campainha
curses.ascii.BS | Backspace
curses.ascii.TAB | Tabulação
curses.ascii.HT | Apelido para `TAB`: “Tabulação horizontal”
curses.ascii.LF | Alimentação de linha ou line feed
curses.ascii.NL | Apelido para `LF`: “Nova linha”
curses.ascii.VT | Tabulação vertical
curses.ascii.FF | Alimentação de formulário ou form feed
curses.ascii.CR | Retorno de carro ou carriage return
curses.ascii.SO | Deslocamento para fora ou shift-out, inicia um conjunto de caracteres alternativo
curses.ascii.SI | Deslocamento para dentro ou shift-in, retoma o conjunto de caracteres padrão
curses.ascii.DLE | Escape de conexão ou data-link escape
curses.ascii.DC1 | XON, para controle de fluxo
curses.ascii.DC2 | Controle de dispositivo 2, control de fluxo em modo bloco
curses.ascii.DC3 | XOFF, para controle de fluxo
curses.ascii.DC4 | Controle de dispositivo 4
curses.ascii.NAK | Confirmação negativa
curses.ascii.SYN | Estado ocioso síncrono
curses.ascii.ETB | Bloco de fim de transmissão
curses.ascii.CAN | Cancelar
curses.ascii.EM | Fim de mídia
curses.ascii.SUB | Substituir
curses.ascii.ESC | Escapar
curses.ascii.FS | Separador de arquivos
curses.ascii.GS | Separador de grupos
curses.ascii.RS | Separador de registros, terminador de modo bloco
curses.ascii.US | Separador de unidades
curses.ascii.SP | Espaço
curses.ascii.DEL | Excluir

Note que muitos deles têm pouca significância prática no uso moderno. Os mnemônicos derivam de convenções de teleimpressoras que antecedem os computadores digitais.

O módulo fornece as seguintes funções, baseadas nas da biblioteca C padrão:

curses.ascii.isalnum(c)

  Verifica se há um caractere alfanumérico ASCII; equivale a `isalpha(c) or isdigit(c)`.

curses.ascii.isalpha(c)

  Verifica se há um caractere alfabético ASCII; equivale a `isupper(c) or islower(c)`.

curses.ascii.isascii(c)

  Verifica se há um valor de caractere que se encaixa no conjunto ASCII de 7 bits.

curses.ascii.isblank(c)

  Verifica se há um caractere de espaço em branco ASCII; espaço ou tabulação horizontal.

curses.ascii.iscntrl(c)

  Verifica se há um caractere de controle ASCII (no intervalo de 0x00 a 0x1f ou 0x7f).

curses.ascii.isdigit(c)

  Verifica se há um dígito decimal ASCII, `'0'` a `'9'`. Isso equivale a `c in string.digits`.

curses.ascii.isgraph(c)

  Verifica se há algum caractere ASCII imprimível, exceto espaço.

curses.ascii.islower(c)

  Verifica se há um caractere ASCII minúsculo.

curses.ascii.isprint(c)

  Verifica se há algum caractere ASCII imprimível, incluindo espaço.

curses.ascii.ispunct(c)

  Verifica se há algum caractere ASCII imprimível que não seja um espaço ou um caractere alfanumérico.

curses.ascii.isspace(c)

  Verifica caracteres de espaço em branco ASCII; espaço, quebra de linha, retorno de carro, quebra de página, tabulação horizontal, tabulação vertical.

curses.ascii.isupper(c)

  Verifica se há uma letra maiúscula ASCII.

curses.ascii.isxdigit(c)

  Verifica se há um dígito hexadecimal ASCII. Isso equivale a `c in string.hexdigits`.

curses.ascii.isctrl(c)

  Verifica se há um caractere de controle ASCII (valores ordinais de 0 a 31).

curses.ascii.ismeta(c)

  Verifica se há um caractere não ASCII (valores ordinais 0x80 e acima).

Essas funções aceitam números inteiros ou strings de caracteres únicos; quando o argumento é uma string, ele é primeiro convertido usando a função embutida `ord()`.

Observe que todas essas funções verificam valores de bits ordinais derivados do caractere da string que você passa; elas não sabem nada sobre a codificação de caracteres da máquina host.

As duas funções a seguir aceitam uma string de caractere único ou um valor de byte inteiro; elas retornam um valor do mesmo tipo.

curses.ascii.ascii(c)

  Retorna o valor ASCII correspondente aos 7 bits mais baixos de c.

curses.ascii.ctrl(c)

  Retorna o caractere de controle correspondente ao caractere fornecido (é feito um E bit a bit com 0x1f sobre o valor do bit do caractere).

curses.ascii.alt(c)

  Retorna o caractere de 8 vits correspondente ao caractere ASCII fornecido (é feito um OU bit a bit com 0x80 sobre o valor do bit do caractere).

A função a seguir aceita uma string de um único caractere ou um valor inteiro; ela retorna uma string.

curses.ascii.unctrl(c)

  Retorna uma representação de string do caractere ASCII c. Se c for imprimível, essa string é o próprio caractere. Se o caractere for um caractere de controle (0x00–0x1f), a string consiste em um acento circunflexo (`'^'`) seguido pela letra maiúscula correspondente. Se o caractere for de exclusão ASCII (0x7f), a string é `'^?'`. Se o caractere tiver seu metabit (0x80) definido, o metabit é removido, as regras precedentes são aplicadas e `'!'` é adicionado ao resultado.

curses.ascii.controlnames

  Um vetor de strings de 33 elementos que contém os mnemônicos ASCII para os trinta e dois caracteres de controle ASCII de 0 (NUL) a 0x1f (US), em ordem, mais o mnemônico `SP` para o caractere de espaço.