[oeasy]python0079_控制序列_光标位置设置_ESC_逃逸字符_CSI
光标位置
回忆上次内容
上次我们研究的比较杂
类型转化
进制转化
捕获异常
版本控制
生成帮助文档
变量的常用类型
变量的生命周期控制
数据类型主要研究了两个
int
str
字符串
整型数字
字符串型 和 整型数字型变量
是可以相互转化的
加法运算逻辑 会根据操作变量的不同 而不同
整型变量的加法 是真的加
字符串的加法 是字符串拼接
字符串中有一些转义字符
\n
\r
\t
都是什么意思来着??
还有什么没见过的转字符吗??🤔
回忆转义
转义转义
转化含义

下图中hello的o
为什么消失了?

\b
是一个字符代表的含义是
退格
hello中的o
被退格符删除了
如果不用chr
想要直接打出上面的效果
应该怎么办呢?
直接加起来

想要用\b替换chr(8)
程序报错了

续行符(
\
)之后有不期待的字符
想要获得同样的字符
应该怎么办呢?
反斜杠的作用
\
反斜杠(backslash) 在程序里面的作用是续行符
line continuation character
当把
\
反斜杠(backslash)放入双引号里面之后在字符串中有特殊的含义
可以和后面的字符一起
构成转义序列
escape sequence
escape character
\
反斜杠 就是 转义字符转义字符

在下图中
是由两部分组成
escape character
\ 转义字符
b 具体转到的含义
escape sequence
\b 就是转义序列
\b 这个转义序列

这两个字符的序列组合起来的意思
就是退格
backspace
还有什么转义字符吗?
换行
\n 这个转义序列的意思是
line feed
换行

\r 这个转义序列的意思是
carriage return
回车

| 转义序列 | 中文含义 | 英文含义 | ascii序号 |
| --- | --- | --- | --- |
| \b | 退格 | backspace | 8 |
| \t | 制表键 | tab | 9 |
| \n | 换行 | line feed | 10 |
| \r | 回车 | carriage | 13 |
可以看到更多的转义字符吗?
转义 Escape
回忆
\xhh
\ooo
可以用八进制
用十六进制
来表示转义字符

这就是全部转义字符了吗?
控制字符
转义字符
具有一定的控制作用
也被叫做 控制字符
control characters
以下就是
ascii中的全部转义字符

居然有转义序列
转义之后的的含义是 escape
搜索结果
来回顾一下🤔
\
是转义字符要和后面的字符一起构成转义序列
\e
是转义序列escape
也被称作 逃逸字符

这 逃逸字符 escape
逃逸指的是什么意思呢?
我们来试试
动手实验
实践证明
直接使用\e是不行的

但是可以使用
用 \033 代替 \e
\e 的 8进制形式

这样可以控制输出字符串的位置!!!
理解Escape
真的可以逃逸出 当前输出序列
控制定位 再输出
从正常的输出流
逃逸到了 控制序列!!!

逃逸
从标准输出序列中逃逸出来

可以让输出
可就不是 输出的文本 了
退出(Escape) 出去
从当前的字符串序列中
后面的内容
而是 控制序列(Control Sequence)
在
第10行第20列
进行输出[10;20H
控制 输出位置那为什么有控制序列呢?
缘起
电传打字机 输出的颜色
来控制 打印颜色的深浅
是物理过程
只能通过 控制色带(类似于墨盒)

早期的终端
都有 自己独特的 控制字符
通过调节 显示器亮度
来改变显示效果
各个终端的 制造商
这些特殊字符 是和 机器型号相关 的
只要 接受到 这些控制字符
终端 就可以 调整输出方式
但是 并没有统一标准
统一标准
但是不同终端
控制方式不同
可能 造成显示状态
异常
远程终端输出结果不可控
需要一个关于控制字符的统一标准
1964 年
ISO 646
整合为工业标准
叫做 ANSI X3.64
在欧洲以
ECMA-6
的形式存在后来被
ANSI
(American National Standards Institute
)

这个字符集 是不是很像 ascii
而且包括了 整个黑暗森林
这套标准
本来 在各种电传打字机 被实现
后来 在各种终端中 被实现
现在 在
terminal软件
被实现
esc 键
Teletype Model ASR-33 终端键盘
数据通信行业 最受欢迎的终端之一
1963 年推出
注意 shift 和 ctrl 都已经出现
Alt Mode 出现在第 1 列

\e
这个转义序列有了对应的按键吗?
ALT MODE
是用来 切换模式的 特殊按键
这是当时的
esc
键 吗?
总结
这次了解了 新的转义模式
这个字符 让字符串 退出标准输出流
进行控制信息的设置
可以设置 光标输出的位置
\033 逃逸控制字符 escape

ASR33中的ALT MODE
是 今天的ESC键吗????🤔
我们下次再说!*
蓝桥->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython