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

光标位置

回忆上次内容

  • 上次我们研究的比较杂

    • 类型转化
    • 进制转化
    • 捕获异常
    • 版本控制
    • 生成帮助文档
    • 变量的常用类型
    • 变量的生命周期控制
  • 数据类型主要研究了两个

    • 字符串
      • str
    • 整型数字
      • int
  • 字符串型 和 整型数字型变量

    • 是可以相互转化的
  • 加法运算逻辑 会根据操作变量的不同 而不同

    • 整型变量的加法 是真的加
    • 字符串的加法 是字符串拼接
  • 字符串中有一些转义字符

    • \n
    • \r
    • \t
    • 都是什么意思来着??
  • 还有什么没见过的转字符吗??🤔

回忆转义

  • 转义转义
    • 转化含义

图片描述

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

图片描述

  • \b 是一个字符
    • 代表的含义是退格
  • hello中的o
    • 被退格符删除了
  • 如果不用chr
    • 想要直接打出上面的效果
    • 应该怎么办呢?

直接加起来

图片描述

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

图片描述

  • 续行符(\)之后
    • 有不期待的字符
  • 想要获得同样的字符
    • 应该怎么办呢?

反斜杠的作用

  • \反斜杠(backslash) 在程序里面的作用

    • 是续行符
    • line continuation character
  • 当把\反斜杠(backslash)放入双引号里面之后

    • \反斜杠 就是 转义字符
      • escape character
    • 转义字符
      • 在字符串中有特殊的含义
      • 可以和后面的字符一起
      • 构成转义序列
        • escape sequence

图片描述

  • 在下图中
    • \b 就是转义序列
      • escape sequence
    • \b 这个转义序列
      • 是由两部分组成
        • \ 转义字符
          • escape character
        • b 具体转到的含义

图片描述

  • 这两个字符的序列组合起来的意思
    • 就是退格
    • backspace
  • 还有什么转义字符吗?

换行

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

图片描述

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

图片描述

转义序列中文含义英文含义ascii序号
\b退格backspace8
\t制表键tab9
\n换行line feed10
\r回车carriage13
  • 可以看到更多的转义字符吗?

转义 Escape

  • 回忆
    • 可以用八进制
      • \ooo
    • 用十六进制
      • \xhh
    • 来表示转义字符

图片描述

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

控制字符

  • 转义字符
    • 具有一定的控制作用
    • 也被叫做 控制字符
    • control characters
  • 以下就是
    • ascii中的全部转义字符

图片描述

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

搜索结果

  • 来回顾一下🤔
  • \是转义字符
    • 要和后面的字符一起构成转义序列
  • \e是转义序列
    • 也被称作 逃逸字符
      • escape

图片描述

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

动手实验

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

图片描述

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

图片描述

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

理解Escape

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

图片描述

逃逸

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

图片描述

  • 可以让输出
    • 从当前的字符串序列中
      • 退出(Escape) 出去
    • 后面的内容
      • 可就不是 输出的文本 了
  • 而是 控制序列(Control Sequence)
    • [10;20H 控制 输出位置
      • 第10行第20列进行输出
  • 那为什么有控制序列呢?

缘起

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

图片描述

  • 早期的终端
    • 通过调节 显示器亮度
    • 来改变显示效果
    • 各个终端的 制造商
      • 都有 自己独特的 控制字符
  • 这些特殊字符 是和 机器型号相关 的
    • 只要 接受到 这些控制字符
    • 终端 就可以 调整输出方式
    • 但是 并没有统一标准

统一标准

  • 但是不同终端
    • 控制方式不同
    • 可能 造成显示状态 异常
    • 远程终端输出结果不可控
    • 需要一个关于控制字符的统一标准
  • 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 键 吗?

总结

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

图片描述

  • ASR33中的ALT MODE

    • 是 今天的ESC键吗????🤔
  • 我们下次再说!👋

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/76974.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue el-input 使用 回车键会刷新页面的问题

场景: vue项目中 在输入框输入字符并按下回车键搜索时,不会进行搜索, 而是会刷新页面 原因: 当form表单中只有一个input时,按下回车建会自动触发页面的提交功能, 产生刷新页面的行为 解决: 在…

idea 2023 新版ui中git的相关操作

前两个月换了新电脑,下了最新版的idea发现可以切换一套新的ui了 切换新ui肯定不太习惯,很多操作都得重新摸索一下 在这里记录几个git相关的操作 忽略我下面截图中当前项目是js的后端项目…… 切换ui 首先说一下怎么切换新旧版ui,我这里就…

机器学习和深度学习简述

一、人工智能、机器学习、深度学习的关系 近些年人工智能、机器学习和深度学习的概念十分火热,但很多从业者却很难说清它们之间的关系,外行人更是雾里看花。概括来说,人工智能、机器学习和深度学习覆盖的技术范畴是逐层递减的,三…

酷开系统 | 酷开科技,让数据变得更有价值!

身处信息时代,我们每个人时刻都在生成、传递和应用数据,数据已经成为了现代社会中宝贵的资源之一,而在人工智能领域,数据更是被称为人工智能的“燃料”。 而在AI的发展中,只有拥有高质量、多样性且充分代表性的数据集…

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官 ReentrantLock是什么,有什么作用ReentrantLock的使用ReentrantLock源码解析ReentrantLock#lock方法FairSync#tryAcquire方法NonfairSync#tryAcquire方法 Reentrant…

微信小程序iconfont真机渲染失败

解决方法: 1.将下载的.woff文件在transfonter转为base64, 2.打开网站,导入文件,开启base64按钮,下载转换后的文件 3. 在下载解压后的文件夹中找到stylesheet.css,并复制其中的base64 4. 修改index.wxss文…

Jmeter +Maven+jenkins 接口性能全自动化测试

背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知&#xff0c…

高项V4.高级PM.项目集set+项目组合portfolio+组织级OPM+量化项目管理+实践模型

PMI , ITSS 、CMMI 和PRINCE2 等为各类信息系统项目管理提供了最佳实践,井提供了对组织的项目管理能力进行持续改进和评估的方法。 第一部分 项目集--《项目集管理标准>> (第4 版) ---实现项目11>2的更大效益 由项目管理协会(PMI) 出版的《…

快速制作美容行业预约小程序

随着科技的不断进步,移动互联网的快速发展,小程序成为了很多行业迅速发展的利器。对于美容行业来说,一款美容预约小程序不仅可以方便用户进行预约,还可以提升美容店铺的服务质量和管理效率。下面,我们来介绍一下如何快…

C高级第三讲

1、思维导图 2、输入一个文件名,判断是否为shell脚本文件,如果是脚本文件,判断是否有可执行权限,如果有可执行权限,运行文件,如果没有可执行权限,给文件添加可执行权限。 #!/bin/bash read -p …

vue 老项目 npm install 报错Python,c++等相关错误

​​​ 老项目npm install 下载依赖包报错 解决方法: //下载python 1、 npm install --global --production windows-build-tools//配置环境 : 也可暂时不用配置,能用就不用配置(npm config set python "D:\Python27\python.exe&q…

康冠医疗2021笔试题

笔试时间:2020.09.24。 岗位:嵌入式软件工程师。 题型:13道题,40分钟。 6道填空,2道简答,5道编程,时间紧任务重。 1、填空 4、考察extern关键字。 6、const可以用来代替define ,define 只是简单的代替,但是const还会进行类型检查。 怎么避免头文件重复包含: #…

pandas read excel 更改string列为时间类型

设想我们有如下一个excel文件 我们都知道上面那个时间列其实是string类型,因此在用pandas做时间校验的时候会不通过,我们可以在read_excel的时候,指定这一列做转换 import pandas as pd from datetime import datetime, timedelta import n…

Mybatis 知识点

Mybatis 知识点 1.1 Mybatis 简介 1.1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架支持定制化 SQL、存储过程及高级映射Mybatis 几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO…

flutter:占位视图(骨架屏、shimmer)

前言 有时候打开美团,在刚加载数据时会显示一个占位视图,如下: 那么这个是如何实现的呢?我们可以使用shimmer来开发该功能 实现 官方文档 https://pub-web.flutter-io.cn/packages/shimmer 安装 flutter pub add shimmer示例…

C语言----字节对齐

一:字节对齐的概念 针对字节对齐,百度百科的解释如下: 字节对齐是字节按照一定规则在空间上排列,字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数,在UTF-8编…

[threejs]相机与坐标

搞清相机和坐标的关系在threejs初期很重要,否则有可能会出现写了代码,运行时一片漆黑的现象,这种情况就有可能是因为你相机没弄对。 先来看一下threejs中的坐标(世界坐标) 坐标轴好理解,大家只需要知道在three中不同颜色代表的轴…

mysql修改密码

文章目录 一、修改密码方式一:用SET PASSWORD命令方式二:用mysqladmin方式三:使用alter user语句 二、修改密码可能遇到的问题ERROR 1396 (HY000): Operation ALTER USERERROR 1064 (42000) 在mysql使用过程中,我们可能经常会对my…

pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值

pytorch中使用nn.CrossEntropyLoss()创建出来的交叉熵损失函数计算损失默认是求平均值的,即多个样本输入后获取的是一个均值标量,而不是样本大小的向量。 net nn.Linear(4, 2) loss nn.CrossEntropyLoss() X torch.rand(10, 4) y torch.ones(10, dt…

机器学习笔记之优化算法(六)线搜索方法(步长角度;非精确搜索;Glodstein Condition)

机器学习笔记之优化算法——线搜索方法[步长角度,非精确搜索,Glodstein Condition] 引言回顾: Armijo Condition \text{Armijo Condition} Armijo Condition关于 Armijo Condition \text{Armijo Condition} Armijo Condition的弊端 Glodstein…