[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
目录
相关文章
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
418 62
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
385 20
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
587 8
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
367 17
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
487 12
|
索引 Python
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
330 2
|
人工智能 Python
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
374 5
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
377 11
|
存储 数据采集 大数据
Python推导式进阶指南:优雅初始化序列的科学与艺术
本文系统讲解Python推导式的用法与技巧,涵盖列表、字典、集合推导式及生成器表达式。通过代码示例和性能对比,展示推导式在数据结构初始化中的优势:简洁高效、执行速度快30%-50%。文章分析基础语法、核心应用场景(如序列构造、键值对转换、去重运算)及嵌套使用,并探讨使用边界与最佳实践,强调可读性优先原则。最后指出,合理运用推导式能显著提升代码质量和处理效率,同时避免过度复杂化的陷阱。
432 0
|
Python
在Python中实现图片转字符画灰度处理或灰色量化
在Python中实现图片转字符画灰度处理或灰色量化
466 1

推荐镜像

更多