[oeasy]python0068_控制序列_清屏_控制输出位置
光标位置
回忆上次内容
上次了解了键盘演化的过程
ESC 从 组合键
到 独立按键

ESC 的目的
是进入控制序列
配置控制信息
控制信息
\033[y;xH 设置光标位置
\033[2J 清屏
这到底
怎么
控制来着???🤔现在 系统里
这些行为 是
谁
来实现的呢?
控制

是由 gui系统中
xfce terminal
终端软件 来实现的
具体来说就是
输出字符
\033
是转义序列也可以 写成 16进制形态
\x1b
\33
是\033
的省略写法33
是 8 进制数形态的ord("\e")
print("\033[2J")
J 是模式选择
0J - 从光标清到屏幕结束
1J - 从光标清到屏幕开头
2J - 整屏幕清
3J - 整屏幕清并选择清空滚动缓存
清屏模式
分为四种清屏

2J 是 整屏幕清
观察环境
进入vi 观察屏幕大小

终端屏幕默认 80*24 (字符)
设置光标
\33[ 是CSI
控制序列前导符
print("\33[1;1Hoeasy")
1;1 指的是
横向80字符
纵向24字符
屏幕左上角
终端大小
中间用分隔符是分号(;)
设置好了 之后
输出 后面的字符 oeasy
H 是模式选择

可以先清屏再输出么?
清屏并设置光标
print("\33[2J")print("\33[1;1Hoeasy")
这是两句话
2J清屏
1;1H设置输出位置
完成两件事
两句话可以合并成一句吗?
合并输出
"\33[2J\33[1;1Hoeasy"
\33[2J 终端接收到后清屏
\33[1;1H 终端接收到后设置光标
终端输出 oeasy
print("\33[2J\33[1;1Hoeasy")
可以换个位置 输出吗?
换个位置
print("\33[2J\33[10;10Hoeasy")
"\33[2J\33[10;10Hoeasy"
先清屏
再在(10,10)坐标输出
oeasy
这就是esc的作用
escape
从当前输出序列中退出来
进行控制信息的输出

看起来很像安全逃生出口
总结
这次了解了一个新的转义模式
\33 逃逸控制字符 esc
esc 让输出 退出标准输出流
可以清屏
也可以设置光标输出的位置
进行控制信息的设置

还能做什么呢?
可以设置字符的颜色吗???🤔
我们下次再说!👋
蓝桥->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy