# 16.12. `curses.ascii` - ASCII字符的实用程序

`curses.ascii`模块提供ASCII字符和函数的名称常量，以测试各种ASCII字符类中的成员资格。提供的常量是控制字符的名称，如下所示：

名称 | 含义
--- | ---
`NUL` |
`SOH` | 标题开始，控制台中断
`STX` | 文本开始
`ETX` | 文本结束
`EOT` | 传输结束
`ENQ` | 查询，与`ACK`流量控制
`ACK` | 确认
`BEL` | 钟
`BS` | 退格
`TAB` | 标签
`HT` | `TAB`的别名：“水平制表符”
`LF` | 换行
`NL` | `LF`的别名：“新行”
`VT` | 垂直选项卡
`FF` | 表单Feed
`CR` | 回车
`SO` | 移出，开始备用字符集
`SI` | 移入，恢复默认字符集
`DLE` | 数据链接转义
`DC1` | XON，用于流量控制
`DC2` | 设备控制2，块模式流量控制
`DC3` | XOFF，用于流量控制
`DC4` | 设备控制4
`NAK` | 否定确认
`SYN` | 同步空闲
`ETB` | 结束传输块
`CAN` | 取消
`EM` | 结束媒体
`SUB` | 替代
`ESC` | 逃逸
`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或0x7f）。

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

  检查ASCII十进制数字，`'0'`到`'9'`。这等效于`c in 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()`进行转换。

注意，所有这些函数检查从传递的字符串的第一个字符派生的序数位值；他们实际上不知道任何关于主机的字符编码。对于知道字符编码（和正确处理国际化）的函数，请参阅`string`模块。

以下两个函数采用单字符字符串或整数字节值；它们返回同一类型的值。

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

  返回对应于c的低7位的ASCII值。

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

  返回与给定字符相对应的控制字符（字符位值按位和0x1f）。

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

  返回与给定ASCII字符相对应的8位字符（字符位值以0x80为单位）。

以下函数采用单字符字符串或整数值；它返回一个字符串。

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

  返回ASCII字符c的字符串表示形式。如果c是可打印的，则此字符串是字符本身。如果字符是控制字符（0x00-0x1f），则字符串由脱字符（`'^'`）后跟相应的大写字母组成。如果字符是ASCII删除（0x7f），则字符串为`'^?'`。如果字符的元位（0x80）置位，元位被去除，应用前面的规则，并且`'!'`前面的结果。

`curses.ascii.``controlnames`

  一个33个元素的字符串数组，包含从0（NUL）到0x1f（US）的32个ASCII控制字符的ASCII助记符，加上空格字符的助记符`SP`。