欢迎光临散文网 会员登陆 & 注册

[oeasy]python0068_控制序列_清屏_控制输出位置

2023-01-31 21:41 作者:oeasy  | 我要投稿

光标位置

回忆上次内容

  • 上次了解了键盘演化的过程

    • 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




[oeasy]python0068_控制序列_清屏_控制输出位置的评论 (共 条)

分享到微博请遵守国家法律