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

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

光标位置 回忆上次内容

  • 上次我们研究的比较杂
  • 类型转化
  • 进制转化
  • 捕获异常
  • 版本控制
  • 生成帮助文档
  • 变量的常用类型
  • 变量的生命周期控制


  • 数据类型主要研究了两个
  • 字符串
  • str


  • 整型数字
  • int



  • 字符串型 和 整型数字型变量
  • 是可以相互转化的


  • 加法运算逻辑 会根据操作变量的不同 而不同
  • 整型变量的加法 是真的加
  • 字符串的加法 是字符串拼接


  • 字符串中有一些转义字符
  • \n
  • \r
  • \t
  • 都是什么意思来着??


  • 还有什么没见过的转字符吗??🤔

回忆转义

  • 转义转义
  • 转化含义


添加图片注释,不超过 140 字(可选)

  • 下图中hello的o
  • 为什么消失了?


添加图片注释,不超过 140 字(可选)

  • \b 是一个字符
  • 代表的含义是退格


  • hello中的o
  • 被退格符删除了


  • 如果不用chr
  • 想要直接打出上面的效果
  • 应该怎么办呢?


直接加起来

添加图片注释,不超过 140 字(可选)

  • 想要用\b替换chr(8)
  • 程序报错了


添加图片注释,不超过 140 字(可选)

  • 续行符(\)之后
  • 有不期待的字符


  • 想要获得同样的字符
  • 应该怎么办呢?


反斜杠的作用

  • \反斜杠(backslash) 在程序里面的作用
  • 是续行符
  • line continuation character


  • 当把\反斜杠(backslash)放入双引号里面之后
  • \反斜杠 就是 转义字符
  • escape character


  • 转义字符
  • 在字符串中有特殊的含义
  • 可以和后面的字符一起
  • 构成转义序列
  • escape sequence




添加图片注释,不超过 140 字(可选)

  • 在下图中
  • \b 就是转义序列
  • escape sequence


  • \b 这个转义序列
  • 是由两部分组成
  • \ 转义字符
  • escape character


  • b 具体转到的含义




添加图片注释,不超过 140 字(可选)

  • 这两个字符的序列组合起来的意思
  • 就是退格
  • backspace


  • 还有什么转义字符吗?

换行

  • \n 这个转义序列的意思是
  • line feed
  • 换行


添加图片注释,不超过 140 字(可选)

  • \r 这个转义序列的意思是
  • carriage return
  • 回车


添加图片注释,不超过 140 字(可选)

| 转义序列 | 中文含义 | 英文含义 | ascii序号 |  | --- | --- | --- | --- |  | \b | 退格 | backspace | 8 |  | \t | 制表键 | tab | 9 |  | \n | 换行 | line feed | 10 |  | \r | 回车 | carriage | 13 |

  • 可以看到更多的转义字符吗?

转义 Escape

  • 回忆
  • 可以用八进制
  • \ooo


  • 用十六进制
  • \xhh


  • 来表示转义字符


添加图片注释,不超过 140 字(可选)

  • 这就是全部转义字符了吗?

控制字符

  • 转义字符
  • 具有一定的控制作用
  • 也被叫做 控制字符
  • control characters


  • 以下就是
  • ascii中的全部转义字符


添加图片注释,不超过 140 字(可选)

  • 居然有转义序列
  • 转义之后的的含义是 escape


搜索结果

  • 来回顾一下🤔
  • \是转义字符
  • 要和后面的字符一起构成转义序列


  • \e是转义序列
  • 也被称作 逃逸字符
  • escape



添加图片注释,不超过 140 字(可选)

  • 这 逃逸字符 escape
  • 逃逸指的是什么意思呢?


  • 我们来试试

动手实验

  • 实践证明
  • 直接使用\e是不行的


添加图片注释,不超过 140 字(可选)

  • 但是可以使用
  • \e 的 8进制形式
  • 用 \033 代替 \e



添加图片注释,不超过 140 字(可选)

  • 这样可以控制输出字符串的位置!!!

理解Escape

  • 真的可以逃逸出 当前输出序列
  • 控制定位 再输出


  • 从正常的输出流
  • 逃逸到了 控制序列!!!


添加图片注释,不超过 140 字(可选)

逃逸

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

添加图片注释,不超过 140 字(可选)

  • 可以让输出
  • 从当前的字符串序列中
  • 退出(Escape) 出去


  • 后面的内容
  • 可就不是 输出的文本 了



  • 而是 控制序列(Control Sequence)
  • [10;20H 控制 输出位置
  • 第10行第20列进行输出



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

缘起

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




添加图片注释,不超过 140 字(可选)

  • 早期的终端
  • 通过调节 显示器亮度
  • 来改变显示效果
  • 各个终端的 制造商
  • 都有 自己独特的 控制字符



  • 这些特殊字符 是和 机器型号相关 的
  • 只要 接受到 这些控制字符
  • 终端 就可以 调整输出方式
  • 但是 并没有统一标准


统一标准

  • 但是不同终端
  • 控制方式不同
  • 可能 造成显示状态 异常
  • 远程终端输出结果不可控
  • 需要一个关于控制字符的统一标准


  • 1964 年 ISO 646
  • 在欧洲以ECMA-6的形式存在
  • 后来被ANSI(American National Standards Institute)
  • 整合为工业标准
  • 叫做 ANSI X3.64



添加图片注释,不超过 140 字(可选)

  • 这个字符集 是不是很像 ascii
  • 而且包括了 整个黑暗森林


  • 这套标准
  • 本来 在各种电传打字机 被实现
  • 后来 在各种终端中 被实现
  • 现在 在terminal软件 被实现


esc 键

  • Teletype Model ASR-33 终端键盘
  • 数据通信行业 最受欢迎的终端之一


  • 1963 年推出
  • 注意 shift 和 ctrl 都已经出现
  • Alt Mode 出现在第 1 列


添加图片注释,不超过 140 字(可选)

  • \e这个转义序列
  • 有了对应的按键吗?


  • ALT MODE
  • 是用来 切换模式的 特殊按键
  • 这是当时的 esc 键 吗?


总结

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




添加图片注释,不超过 140 字(可选)

  • ASR33中的ALT MODE
  • 是 今天的ESC键吗????🤔



目录
相关文章
|
29天前
|
算法 前端开发 数据处理
小白学python-深入解析一位字符判定算法
小白学python-深入解析一位字符判定算法
45 0
|
11天前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
23 4
|
18天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
16 1
|
4天前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
6 0
|
26天前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
27天前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
1月前
|
Python
[oeasy]python036_数据类型有什么用_type_类型_int_str_查看帮助
本文回顾了Python中`ord()`和`chr()`函数的使用方法,强调了这两个函数互为逆运算:`ord()`通过字符找到对应的序号,`chr()`则通过序号找到对应的字符。文章详细解释了函数参数类型的重要性,即`ord()`需要字符串类型参数,而`chr()`需要整数类型参数。若参数类型错误,则会引发`TypeError`。此外,还介绍了如何使用`type()`函数查询参数类型,并通过示例展示了如何正确使用`ord()`和`chr()`进行转换。最后,强调了在函数调用时正确传递参数类型的重要性。
20 3
|
25天前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
19 0
|
2月前
|
API Python
使用Python requests库下载文件并设置超时重试机制
使用Python的 `requests`库下载文件时,设置超时参数和实现超时重试机制是确保下载稳定性的有效方法。通过这种方式,可以在面对网络波动或服务器响应延迟的情况下,提高下载任务的成功率。
140 1
|
2月前
|
索引 Python
python之判断字符里面有没有|8
python之判断字符里面有没有|8
下一篇
无影云桌面