[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
在欧洲以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键吗????
我们下次再说!*
蓝桥->/courses/3584
github->/overmind1980/oeasy-python-tutorial
gitee->/overmind1980/oeasypython