[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键吗????🤔



目录
相关文章
|
5天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
98 80
|
12天前
|
人工智能 C语言 Python
[oeasy]python051_什么样的变量名能用_标识符_identifier
本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
107 69
|
14天前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
108 68
|
3天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
24 9
|
11天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
22 5
|
16天前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
27 9
|
19天前
|
Python 容器
[oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment _
本文介绍了Python中变量赋值的不同方式,包括使用字面量和另一个变量进行赋值。通过`id()`函数展示了变量在内存中的唯一地址,并探讨了变量、模块、函数及类类型的地址特性。文章还讲解了连等赋值和解包赋值的概念,以及如何查看已声明的变量。最后总结了所有对象(如变量、模块、函数、类)都有其类型且在内存中有唯一的引用地址,构成了Python系统的基石。
27 5
|
27天前
|
存储 Python 容器
[oeasy]python045_[词根溯源]赋值_assignment_usage_使用
本文回顾了上一次讲解的内容,重点讨论了变量的概念及其在各种系统和游戏中的应用。文章详细解释了变量的声明与赋值操作,强调了赋值即为将具体值存储到变量名下的过程。同时,通过例子说明了字面量(如数字0)不能被赋值给其他值的原因。此外,还探讨了“赋值”一词的来源及其英文表达“assignment”的含义,并简要介绍了与之相关的英语词汇,如sign、assign、signal等。最后,总结了本次课程的核心内容,即赋值操作的定义和实现方式。
24 3
|
1月前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
27 2
|
1月前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
22 1