光标位置 回忆上次内容
  • 上次我们研究的比较杂
  • 类型转化
  • 进制转化
  • 捕获异常
  • 版本控制
  • 生成帮助文档
  • 变量的常用类型
  • 变量的生命周期控制
 
  • 数据类型主要研究了两个
  • 字符串
  • 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键吗????
 


[oeasy]python0079_控制序列_光标位置设置_ESC_逃逸字符_CSI的更多相关文章

  1. MFC中窗口启动后,CEdit编辑框默认光标位置设置,顺序的调节方法

    MFC中窗口启动后,CEdit编辑框默认光标位设置,顺序的调节方法 在编辑界面按下ctrl+D键,就会出现所有控件的Tab键顺序,按照自己想要的顺序依次点击控件,就可以重新安排顺序.数值1就是默认停留 ...

  2. Android 光标位置设置

    EditText edit =(EditText) findViewById(R.id.etTest); 1.设置光标在EditText中的指定位置 edit.setSelection(1); 需要注 ...

  3. 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示

    1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...

  4. javascript获取以及设置光标位置

    一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selecti ...

  5. [Android教程]EditText设置/隐藏光标位置、选中文本和获取/清除焦点

      有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点. 1. 设置光标到指定位置 EditText et ...

  6. Android 设置EditText光标位置

    Android中有很多可编辑的弹出框,其中有些是让我们来修改其中的字符,这时光标位置定位在哪里呢? 刚刚解了一个bug是关于这个光标的位置的,似乎Android原生中这种情况是把光标定位到字符串的最前 ...

  7. UITextField 光标的位置设置获取

    UITextField 光标的位置设置获取 通过给UITextField 加一个拓展 //#import "UITextField+ExtentRange.h" #import & ...

  8. Android 设置EditText光标位置(转)

    Android 设置EditText光标位置 最后 CharSequence text = edtTxt_my_account_edit_nickname.getText();if (text ins ...

  9. C# 设置鼠标光标位置

    C# 设置鼠标光标位置 using System.Drawing; using System.Runtime.InteropServices; namespace ZB.QueueSys.Common ...

  10. EditText设置/隐藏光标位置、选中文本和获取/清除焦点(转)

    转:http://blog.csdn.net/dajian790626/article/details/8464722 有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便 ...

随机推荐

  1. python 源

    清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https: ...

  2. lodash已死?radash库方法介绍及源码解析 —— 对象方法篇

    写在前面 主页有更多其他篇章的方法,欢迎访问查看. 本篇我们介绍radash中对象相关方法的使用和源码解析. assign:递归合并两个对象 使用说明 功能说明:类似于 JavaScript 的 Ob ...

  3. apache 的下载与配置

    一,下载: 打开apache的官方网站,http://www.apache.org/   拉到网站的最下面,如图所示: 点击HTTP Server链接,对 Apache httpd 2.4.43 Re ...

  4. block专递参数导致野指针引发crash

    一.问题引入 近日开发中引入一个随机crash,Crash堆栈如下: Exception Type: SIGSEGV Exception Codes: SEGV_ACCERR at 0x0000000 ...

  5. drawio中添加数学公式

    1.drawio简介 drawio是一款免费开源的流程图绘制软件,由于软件免费,而且模块也很丰富,我比较喜欢用它. 软件下载地址:https://github.com/jgraph/drawio-de ...

  6. 机器学习策略篇:详解如何改善你的模型的表现(Improving your model performance)

    如何改善模型的表现 学过正交化,如何设立开发集和测试集,用人类水平错误率来估计贝叶斯错误率以及如何估计可避免偏差和方差.现在把它们全部组合起来写成一套指导方针,如何提高学习算法性能的指导方针. 所以想 ...

  7. CSP-S2019 题解

    做了这套题,如果是让现在的我当时去考的话应该一共可以有 450 分,格雷码,括号树,树的重心都可以做,树上的数可以有 10 分,Emiya 至少可以有 76 分, 划分也可以有 64 分.看 OIer ...

  8. AGC055

    AGC055 第一次打AGC,好难受. T1 看了一眼题解,没看懂--但是还是做出来了. T2 感觉比 T1 简单,构造很好猜. 其他的没时间思考,T1 花了我 2h30min,难受. A.ABC I ...

  9. golang sync.Once 保证某个动作仅执行一次的机制

    type Once struct { done atomic.Uint32 m Mutex } 这段代码是 Go 语言标准库中 sync 包的一部分,定义了一个 Once 类型.Once 类型用于确保 ...

  10. springboot3时代创建springboot2程序项目

    springboot3时代创建springboot2程序项目 目前,IDEA,springboot 官网,都不能创建基于JDK8(JDK1.8)的springboot程序了. 解决办法: 1. 先在官 ...