[oeasy]python0082_[趣味拓展]控制序列_清屏_控制输出位置_2J

光标位置

回忆上次内容

  • 上次了解了键盘演化的过程
    • ESC 从 组合键
    • 到 独立按键

图片描述

  • ESC的作用 是
    • 进入 控制序列
    • 配置 控制信息
    • 控制信息
      • \033[y;xH 设置光标位置
      • \033[2J 清屏
  • 这到底怎么控制???🤔
  • 来实现这些功能?

控制

  • 是由 系统中 终端软件
    • 来实现的

图片描述

  • 具体来说
    • 当前系统中 终端软件 就是
      • xfce terminal

图片描述

输出字符

  • \033是转义序列
    • \33\033的省略写法
      • ``\0ooo` 的方式是
        • 使用 八进制形式 输出转义字符
    • 033
      • ord(“\e”) 的八进制形式
    • 也可以 写成 16进制形态
      • 0x1b
      • \x1b
print("\033[2J")
  • J 是模式选择
    • 清屏模式
    • 分为四种清屏
      • 0J - 从光标清到屏幕结束
      • 1J - 从光标清到屏幕开头
      • 2J - 整屏幕清
      • 3J - 整屏幕清并选择清空滚动缓存

图片描述

  • 2J 是 整屏幕全清空

屏幕清空

  • 仿佛宇宙进行了一场重启
    • 回到了最初什么都没有的初始状态
      • 白茫茫大地真干净

图片描述

  • 这个字符的宇宙
    • 究竟有多大呢?

观察环境

  • 进入vi 观察屏幕大小

图片描述

  • 终端屏幕默认 80*24 (字符)
    • 这尺寸可以追溯到 早期的存储介质
      • 纸质卡片
    • 目前已经成为了 终端默认的大小

图片描述

  • 终端清屏之后
    • 可以让光标
      • 从左上角进行输出吗?

设置光标

  • \33[ 是CSI

    • 控制序列前导符
    • Control Sequence Introducer
  • 如果没有csi

    • 就是将文本直接输出到标准输出流
  • 如果加上了csi

    • 就输出了控制序列
    • 从而可以控制输出的位置和颜色等
print("\33[1;1Hoeasy")
  • 1;1 指的是
    • 屏幕左上角
      • 终端大小
        • 横向80字符
        • 纵向24字符
    • 中间用分隔符是分号(😉
  • 设置好了输出位置 之后
    • 再输出 后面的字符 oeasy
  • H 是模式选择

图片描述

  • 可以先清屏 再输出吗?

清屏并设置光标

print("\33[2J")
print("\33[1;1Hoeasy")
  • 这是两句话
    • 完成两件事
      1. 2J清屏
      2. 1;1H设置输出位置

图片描述

  • 两句话可以合并成一句吗?

合并输出

  • “\33[2J\33[1;1Hoeasy”
    • \33[2J 终端接收到后清屏
    • \33[1;1H 终端接收到后设置光标
    • 终端输出 oeasy
print("\33[2J\33[1;1Hoeasy")
  • 可以换个位置 输出吗?

换个位置

print("\33[2J\33[10;10Hoeasy")
  • “\33[2J\33[10;10Hoeasy”

    • 先清屏
    • 再在(10,10)坐标输出oeasy
  • 这样就可以 让光标

    • 在屏幕中 任意移动

图片描述

  • 一个跟头 十万八千里
    • 这就是通过escape引发的
    • 控制序列的 作用

escape

  • escape 就是退出
    • 从 当前输出序列中 退出来
      • 进行 控制信息的输出

图片描述

  • 看起来很像 安全逃生出口

图片描述

总结

  • 这次了解了 一个新的转义模式

    • \33 逃逸控制字符 esc
  • esc 让输出

    • 退出 标准输出流
    • 进行 控制信息的设置
      • 可以 清屏
      • 也可以 设置光标输出的位置
  • 还能做什么呢?

    • 可以 设置 字符的颜色吗???🤔

图片描述

  • 我们下次再说!👋

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ensp与虚拟机搭建测试环境

1.虚拟机配置 ①首先确定VMnet8 IP地址,若要修改IP地址,保证在启动Ensp前操作 ②尽量保证NAT模式 2.ensp配置 (1)拓扑结构 (2)Cloud配置 ①首先点击 绑定信息 UDP → 增加 ②然后点击 绑定信息 VMware ... → 增加 ③最后在 端口映射设置上点击双向通…

[oeasy]python0081_[趣味拓展]ESC键进化历史_键盘演化过程_ANSI_控制序列_转义序列_CSI

光标位置 回忆上次内容 上次了解了 新的转义模式 \033 逃逸控制字符 escape 这个字符 让字符串 退出标准输出流进行控制信息的设置 可以设置 光标输出的位置 ASR33中的ALT MODE 是 今天的ESC键吗????🤔 查询文档…

Ajax入门

文章目录 axios体验axios-查询参数常用请求方法数据提交 axios错误处理 axios体验 引入axios库 使用axios语法 axios({url: 目标资源地址 }).then((result)>{// 对服务器返回的数据做后续处理 })完整实例 <!DOCTYPE html> <html lang"en"><head&g…

eclipse Java Code_Style Code_Templates

Preferences - Java - Code Style - Code Templates Eclipse [Java_Code_Style_Code_Templates_ZengWenFeng] 2023.08.07.xml 创建一个新的工程&#xff0c;不然有时候不生效&#xff0c;旧项目可能要重新导入eclipse 创建一个测试类试一试 所有的设置都生效了

在java中如何使用openOffice进行格式转换,word,excel,ppt,pdf互相转换

1.首先需要下载并安装openOffice,下载地址为&#xff1a; Apache OpenOffice download | SourceForge.net 2.安装后&#xff0c;可以测试下是否可用&#xff1b; 3.build.gradle中引入依赖&#xff1a; implementation group: com.artofsolving, name: jodconverter, version:…

使用 API Gateway Integrator 在 Quarkus 中实施适用于 AWS Lambda 的 OpenAPI

AWS API Gateway 集成使得使用符合 OpenAPI 标准的 Lambda Function 轻松实现 REST API。 关于开放API 它是一个 允许以标准方式描述 REST API 的规范。 OpenAPI规范 (OAS) 为 REST API 定义了与编程语言无关的标准接口描述。这使得人类和计算机都可以发现和理解服务的功能&am…

STM32 LoRa源码解读

目录结构&#xff1a; SX1278 |-- include | |-- fifo.h | |-- lora.h | |-- platform.h | |-- radio.h | |-- spi.h | |-- sx1276.h | |-- sx1276Fsk.h | |-- sx1276FskMisc.h | |-- sx1276Hal.h | |-- sx1276LoRa.h | -- sx1276LoRaMisc.h – src |-- fifo.c |-- lora.c |-- …

0140 数据链路层2

目录 3.数据链路层 3.6局域网 3.7广域网 3.8数据链路层设备 部分习题 3.数据链路层 3.6局域网 3.7广域网 3.8数据链路层设备 部分习题 1.如果使用5类UTP来设计一个覆盖范围为200m的10BASE-T以太网&#xff0c;需要采用的设备是&#xff08;&#xff09; A.放大器 …

idea导入新项目报异常:Error:java: Compilation failed: internal java compiler error

修改settings中项目对象Java编译配置恢复正常。 标记的两个地方配置修改和项目一样后&#xff0c;正常。

OpenSource - 分布式重试平台

文章目录 概述重试方案对比设计思想流量管理平台预览场景应用强通知场景发送MQ场景回调场景异步场景 概述 在当前广泛流行的分布式系统中&#xff0c;确保系统数据的一致性和正确性是一项重大挑战。为了解决分布式事务问题&#xff0c;涌现了许多理论和业务实践&#xff0c;其…

AJAX-笔记(持续更新中)

文章目录 Day1 Ajax入门1.AJAX概念和axios的使用2. 认识URL3.URL的查询参数4.常用的请求方法和数据提交5.HTTP协议-报文6.接口文档7.form-serialize插件8.案例用户登录 Day2 Ajax综合案bootstrap弹框图书管理图片上传更换背景个人信息设置 Day3 AJAX原理XMLHttpRequestPromise封…

Idea全局搜索(ctrl+shift+F),搜索不全问题

今天idea突然出现&#xff0c;全局搜索&#xff0c;命名html文件中有这个字符&#xff0c;但是全局搜索居然匹配内容是空。。。。而且全局搜索界面也设置好了 经查发现是缓存问题&#xff0c;于是&#xff1a; 清空缓存后发现全局搜索功能可正常使用...

[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

1.今天开发了一套服务程序&#xff0c;使用的是Odbc连接MySql数据库&#xff0c; 在我本机用VS打开程序时&#xff0c;访问一切正常&#xff0c;当发布出来装在电脑上&#xff0c;连接数据库时提示&#xff1a; [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定…

uniapp 微信小程序 上下滚动的公告通知(只取前3条)

效果图&#xff1a; <template><view class"notice" click"policyInformation"><view class"notice-icon"><image mode"aspectFit" class"img" src"/static/img/megaphone.png"></i…

计算机网络的定义和分类

计算机网络的定义和分类 计算机网络的定义 计算机网络的精确定义并未统一计算机网络最简单的定义是&#xff1a;一些互相连接的、自治的计算机的集合 互连:指计算机之间可以通过有线或无线的方式进行数据通信自治:是指独立的计算机&#xff0c;它有自己的硬件和软件&#xff…

【深度学习_TensorFlow】手写数字识别

写在前面 到这里为止&#xff0c;我们已经学习完张量的常用操作方法&#xff0c;已具备实现大部分神经网络技术的基础储备了。这一章节我们将开启神经网络的学习&#xff0c;然而并不需要像学习前面那样了解大量的张量操作&#xff0c;而是将重点转向理解概念知识&#xff0c;…

Mysql进阶(中) -- 索引

索引上部分 -> Mysql进阶(上) -- 存储引擎&#xff0c;索引_千帐灯无此声的博客-CSDN博客 &#x1f442; 爸爸妈妈 - 王蓉 - 单曲 - 网易云音乐 &#x1f448;目录看左栏 目录 &#x1f33c;索引 &#x1f43b;性能分析 - show profiles &#x1f43b;性能分析 - exp…

关于自动化测试用例失败重试的一些思考

自动化测试用例失败重跑有助于提高自动化用例的稳定性&#xff0c;那我们来看一下&#xff0c;python和java生态里都有哪些具体做法&#xff1f; 怎么做 如果是在python生态里&#xff0c;用pytest做测试驱动&#xff0c;那么可以通过pytest的插件pytest-rerunfailures来实现…

实时时钟DS1302原理详解和单片机编程

一、DS1302的功能 DS1302是美国DALLAS推出的一款高性能、低功耗的日历时钟芯片。 DS1302是一种串行接口的实时时钟&#xff0c;芯片内部具有可编程的日历时钟和31个字节的静态RAM&#xff0c;日历时钟可以自动进行闰年补偿&#xff0c;计时准确&#xff0c;接口简单&#xff…

React Dva项目 简单引入models中的所有JS文件

我们前面接触的 Dva项目 models目录下的文件还要一个一个引入 其实体验并不是很好 而且如果项目很大那就比较麻烦了 我们可以在 models 下创建一个 index.js 文件 编写代码如下 const context require.context("./", false, /\.js$/); export default context.key…