[oeasy]python0068_控制序列_清屏_控制輸出位置
光標(biāo)位置
回憶上次內(nèi)容
上次了解了鍵盤演化的過程
ESC 從 組合鍵
到 獨(dú)立按鍵

ESC 的目的
是進(jìn)入控制序列
配置控制信息
控制信息
\033[y;xH 設(shè)置光標(biāo)位置
\033[2J 清屏
這到底
怎么
控制來著?????現(xiàn)在 系統(tǒng)里
這些行為 是
誰
來實(shí)現(xiàn)的呢?
控制

是由 gui系統(tǒng)中
xfce terminal
終端軟件 來實(shí)現(xiàn)的
具體來說就是
輸出字符
\033
是轉(zhuǎn)義序列也可以 寫成 16進(jìn)制形態(tài)
\x1b
\33
是\033
的省略寫法33
是 8 進(jìn)制數(shù)形態(tài)的ord("\e")
print("\033[2J")
J 是模式選擇
0J - 從光標(biāo)清到屏幕結(jié)束
1J - 從光標(biāo)清到屏幕開頭
2J - 整屏幕清
3J - 整屏幕清并選擇清空滾動(dòng)緩存
清屏模式
分為四種清屏

2J 是 整屏幕清
觀察環(huán)境
進(jìn)入vi 觀察屏幕大小

終端屏幕默認(rèn) 80*24 (字符)
設(shè)置光標(biāo)
\33[ 是CSI
控制序列前導(dǎo)符
print("\33[1;1Hoeasy")
1;1 指的是
橫向80字符
縱向24字符
屏幕左上角
終端大小
中間用分隔符是分號(hào)(;)
設(shè)置好了 之后
輸出 后面的字符 oeasy
H 是模式選擇

可以先清屏再輸出么?
清屏并設(shè)置光標(biāo)
print("\33[2J")print("\33[1;1Hoeasy")
這是兩句話
2J清屏
1;1H設(shè)置輸出位置
完成兩件事
兩句話可以合并成一句嗎?
合并輸出
"\33[2J\33[1;1Hoeasy"
\33[2J 終端接收到后清屏
\33[1;1H 終端接收到后設(shè)置光標(biāo)
終端輸出 oeasy
print("\33[2J\33[1;1Hoeasy")
可以換個(gè)位置 輸出嗎?
換個(gè)位置
print("\33[2J\33[10;10Hoeasy")
"\33[2J\33[10;10Hoeasy"
先清屏
再在(10,10)坐標(biāo)輸出
oeasy
這就是esc的作用
escape
從當(dāng)前輸出序列中退出來
進(jìn)行控制信息的輸出

看起來很像安全逃生出口
總結(jié)
這次了解了一個(gè)新的轉(zhuǎn)義模式
\33 逃逸控制字符 esc
esc 讓輸出 退出標(biāo)準(zhǔn)輸出流
可以清屏
也可以設(shè)置光標(biāo)輸出的位置
進(jìn)行控制信息的設(shè)置

還能做什么呢?
可以設(shè)置字符的顏色嗎?????
我們下次再說!??
藍(lán)橋->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