[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

简介: [oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

光标位置

回忆上次内容

  • 上次讲了 三引号的输出
  • 三引号中
  • 回车和引号 都会 被原样输出
  • \ 还是需要从 \\转义
  • 黑暗森林 快被摸排清了
  • 还有哪个 转义序列
  • 没 研究过吗?🤔

  • \e是 干什么的?🤔

回忆转义

  • 转义转义
  • 转化含义

  • \反斜杠(backslash)加了之后
  • 字符就不是原来的意思了
  • 转义么
  • 转义转义
  • 转化含义
  • 所以\反斜杠这个字符
  • 也叫做转义字符Escape character
  • \b 这两个字符的序列算是一个转义序列 Escape sequence
  • \ 这个转义字符会让 \b转义序列
  • 转义为 Backspace 这个含义
  • Backspace退格就是这个序列转化含义之后的含义
  • 这个转化后的含义也对应一个ascii字符
  • 就是 \b
  • 键盘上的退格对应的数值就是8

转义 Escape

  • \e是什么意思呢?

  • 转义之后的的含义竟然是 escape

搜索结果

  • 来捋一捋🤔

  • \是转义字符
  • 要和后面的字符一起构成转义序列
  • \e是转义序列
  • 转义的含义是 escape
  • 所谓转义转义
  • 转化含义
  • 转义序列\e对应的字符含义是Escape
  • 再次逃逸出去
  • 能逃去到哪里呢?

逃逸

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

  • 可以让输出
  • 从当前的字符串序列中
  • 逃逸(Escape)出去
  • 后面的内容
  • 可就不是 输出的文本 了
  • 而是 控制序列(Control Sequence)
  • [10;20H 控制 输出位置
  • 第10行第20列进行输出
  • 这种控制方法
  • 在今天被称为
  • ANSI escape code 标准
  • 我们来试试

动手实验

  • 真的可以定位输出
  • 从正常的输出流逃逸到了控制序列!!!

  • 那为什么有控制序列呢?

缘起

  • 电传打字机 输出的颜色
  • 只能通过 控制色带(类似于墨盒)
  • 来控制 打印颜色的深浅
  • 是物理过程

  • 早期的终端
  • 通过调节 显示器亮度 来改变显示效果
  • 各个终端的 制造商
  • 都有 自己独特的 控制字符
  • 这些特殊字符 是和 机器相关 的
  • 彼此 并不兼容
  • 但只要 接受到 这些控制字符
  • 终端 就可以 调整输出方式
  • 比如
  • 在 某个横纵坐标位置[x,y]
  • 输出字符
  • 这就是 数字过程了

统一标准

  • 但是不同终端
  • 控制方式不同
  • 可能 造成显示状态 异常
  • 远程终端输出结果不可控
  • 需要一个关于控制字符的统一标准
  • 1964 年 ISO 646
  • 在欧洲以ECMA-6的形式存在
  • 后来被ANSI(American National Standards Institute)
  • 整合为工业标准
  • 叫做 ANSI X3.64

  • 是不是很像ascii
  • 而且包括了 整个黑暗森林
  • 本来 在各种电传打字机 中实现支持
  • 现在在 terminal软件 中实现支持

esc 键

  • Teletype Model ASR-33 终端键盘
  • 数据通信行业 最受欢迎的终端之一
  • 1963 年推出
  • 注意 shift 和 ctrl 都已经出现
  • Alt Mode 出现在第 1 列

  • \e这个转义序列 有了对应的按键吗?
  • ALT MODE
  • 是用来 切换模式的 特殊按键
  • 这是当时的 esc 键 吗?

总结

  • 这次了解了 新的转义模式
  • \33 逃逸控制字符 esc
  • 这个字符让输出退出标准输出流
  • 进行控制信息的设置
  • 可以设置光标输出的位置

  • ASR33中的ALT MODE
  • 是 今天的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
目录
相关文章
|
5天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
6 1
|
16天前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
27 4
|
23天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
17 1
|
9天前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
8 0
|
1月前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
1月前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
30天前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
25 0
|
3月前
|
存储 索引 Python
Python中序列类型 (Sequence Types)
【8月更文挑战第2天】
53 4
|
存储 算法 BI
【100天精通python】Day6:python基础_基本数据结构,常用序列类型和运算符
【100天精通python】Day6:python基础_基本数据结构,常用序列类型和运算符
132 0
|
Java 索引 Python
【Python】序列类型①-列表
序列是一块用来存放多个值的内存空间.Python中常用的数据结构有列表,元组,字典,字符串,集合等. 本篇文章主要讲解列表的常见操作.