[oeasy]python0083_[趣味拓展]字体样式_正常_加亮_变暗_控制序列

字体样式

回忆上次内容

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

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

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

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

图片描述

查看细节

  • 回忆
    • 控制序列 前导符\033[
  • \是转义字符
    • 要和 后面的内容
      • 一起 构成转义序列
  • \033 是转义序列
    • 转义转义
      • 转化含义
      • 转义序列\033对应的 字符含义 是Escape
      • 从标准输出流 逃逸 出去
  • 输出字符串时
    • 出现了 Escape
    • 能逃去到 哪里 呢?
  • 从 输出的字符串中 Escape 出去
    • 后面的内容 不是纯文本了
    • 而是 控制序列(Control Sequence)

具体控制

  • \033[CSI
    • Control Sequence Introducer
    • 控制序列前导符

图片描述

  • CSI n m
    • CSI 之后的是ansi给的关于字体样式的设置细节
  • 上图中的 n 对应
    • 0-10的一个数字
  • 上图中的m 说明
    • 这是 要进行 外观设置
      • 选择图形渲染 参数
      • SGR (Select Graphic Rendition) parameters
  • 上次
    • H 控制位置
  • 这次
    • m 控制外观
  • 具体怎么控制外观呢?

具体设置

  • 从1m 到10m

图片描述

  • 动手试试

1m、0m

  • 结构是 \033[1m
    • \033是逃逸字符
    • 1 对应着 增亮或变粗
    • 0 对应着 还原
    • m 是 固定的格式要求

图片描述

  • 好像颜色 是有点 不一样

图片描述

  • 我可以 把\033 简化为 \e 么?
  • 实践 出 真知

尝试\e

  • python游乐场中不能用\e

图片描述

  • 结论
    • \033 可以进入 字体控制模式
    • \e 目前 在python中 不支持
  • 但是 在shell中 呢?

在shell中

  • 在shell中
    • echo命令 支持\e

图片描述

  • python游乐场 中
    • 不支持"\e"
    • 只支持"\033"

2m

图片描述

  • 2 和 1 相反
    • 1m 更亮
    • 2m 更暗
    • 0m 还原

图片描述

    • 一会儿亮
    • 一会儿暗
  • 好像 挺好玩的

编写程序

  • 编辑一个py文件
    • 注意
      • 文件名 不能是time.py
      • 因为 我们要引入的包 叫做time
      • time.py 会让 python3 引入自己
import time
for i in range(100):csi = "\033["color = str(i % 3)print(csi + color + "moeasy")time.sleep(0.2)
  • i%3 是让 i对3取余
    • 得到0、1、2三种可能

代码

图片描述

  • i 从1到100
    • color在"0"、“1”、"2"中 循环
      • 设置文字在"正常"、“亮”、"暗"中 循环
    • 冷却时间是 0.2s

图片描述

  • 规律性很强
    • 其实 通过亮和暗
    • 可以得到 更好玩的东西

bb

  • 可以 看看bb 这个应用
    • 在shell中 安装bb
sudo apt install bb
  • 键入 bb 直接运行
    • bb里面 用字符画风格
      • 实现 三维旋转

图片描述

  • 应该是 视频按帧 转化过来的
    • 很好玩!
  • 可以 引入随机吗?

引入随机

  • 进入python游乐场
import random
help random
  • 先看看帮助文档

图片描述

  • random.random() 在 [0,1) 之间

图片描述

  • random.random()*2 在 [0,2) 之间
    • int(random.random()*2) 得到 整数
      • {0,1}
      • (0 或者 1)

随机翻倍

  • 想要让屏幕显示
    • 0或者1

图片描述

  • random.random() 在 (0,1) 之间
    • random.random()*2 在 [0,2) 之间
  • 再用int函数取整
    • 得到 {0, 1}
      • (0 或 1)

图片描述

  • 颜色的值 可以是
    • {0, 1, 2}
    • (0 或 1 或 2)
  • 这又应该如何取得呢?

乱序

  • 编辑一个py文件
    • 注意文件名不能是
      • time.py
      • random.py
import time
import random
while True:csi= "\033["color = int(random.random()*3)num = int(random.random()*2)print(csi + str(color) + "m" + str(num),end="")
  • 数字是
    • 0 或 1
  • 颜色是
    • 亮 \33[1m
    • 正常 \33[0m
    • 暗 \33[2m

效果

  • 这下确实 乱了起来😄

图片描述

  • 而且是
    • 毫无规律地
      • 乱了起来

纷乱

乱花渐欲迷人眼
浅草才能没马蹄

图片描述

  • 视觉表象看起来
    • 确实很乱
  • 想要 总结规律
    • 就要从视觉中抽象出来

总结

  • \033 xm 可以改变字体样式
    • 0m - 10m 之间设置的 都是字体效果
      • 0m 复原
      • 1m 变亮
      • 2m 变暗

图片描述

  • 从3m到10m
    • 又是什么效果 呢??

图片描述

  • 真的 可以让文字 blink闪烁吗?👁

  • 我们下次再说!👋

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

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

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

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

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

相关文章

利用Simulink Test进行模型单元测试 - 1

1.搭建用于测试的简单模型 随手搭建了一个demo模型MilTestModel,模型中不带参数 2.创建测试框架 1.模型空白处右击 测试框架 > 为‘MilTestModel’创建 菜单 2.在创建测试框架对话框中,点击OK,对应的测试框架MilTestMode_Harness1就自动…

第五次作业 运维高级 构建 LVS-DR 集群和配置nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 LVS-DR模式工作原理 首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包…

Android Jetpack

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳实践、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。 1.基础组件 (1)AppCompat:使得支持较低…

Qt画波浪球(小费力)

画流动波浪 #ifndef WIDGET3_H #define WIDGET3_H#include <QWidget> #include <QtMath> class widget3 : public QWidget {Q_OBJECT public:explicit widget3(QWidget *parent nullptr);void set_value(int v){valuev;}int get_value(){return value;} protecte…

vue中vuex的五个属性和基本用法,另加js-cookie的使用

VueX 是一个专门为 Vue.js 应用设计的状态管理构架&#xff0c;统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。 Vuex有五个核心概念&#xff1a; state, getters, mutations, actions, modules。 1. state&#xff1a; vuex的基本数据&…

【Linux】-- 进程间通信

目录 一、进程间通信介绍 二、管道 1.什么是管道&#xff08;pipe&#xff09; 2.重定向和管道 &#xff08;1&#xff09;为什么要有管道的存在 &#xff08;2&#xff09;重定向和管道的区别 3.匿名管道 &#xff08;1&#xff09;匿名管道原理 &#xff08;2&…

SpringCloud实用篇5——elasticsearch基础

目录 1.初识elasticsearch1.1 了解ES1.1.1 elasticsearch的作用1.1.2 ELK技术栈1.1.3 elasticsearch和lucene1.1.4 总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3 es的一些概念1.3.1 文档和字段1.3.2 索引和映射1.3.3 mysql与elasticsearch 1.4 部署单点…

直播招聘小程序解决方案

项目开发愿景 介绍工作拿佣金&#xff0c;Boss直播现真身。做为直播招聘的新平台&#xff0c;让求职和招聘变得更简单&#xff01;企业发布招聘视频&#xff0c;展现公司环境与实力&#xff0c;开通会员可以直播招聘、在线面试功能&#xff1b;求职者刷视频可以刷到工作…

信息安全:访问控制技术原理与应用.

信息安全&#xff1a;访问控制技术原理与应用. 访问控制是网络信息系统的基本安全机制。访问控制是指对资源对象的访问者授权、控制的方法及运行机制。访问者又称为主体&#xff0c;可以是用户、进程、应用程序等&#xff1b;而资源对象又称为客体&#xff0c;即被访问的对象&…

react中hooks分享

一. HOOKS是什么 在计算机程序设计中&#xff0c;钩子一词涵盖了一系列技术&#xff0c;这些技术用来通过拦截函数调用、消息或在软件组件之间传递的事件来改变或增加操作系统、应用程序或其他软件组件的行为。处理这些被截获的函数调用、事件或消息的代码称为“hook”。 在r…

C++核心编程:C++中的引用

C中的引用 引用的基本语法 作用&#xff1a;给变量起别名 语法&#xff1a;数据类型 & 别名 原名 //比如给一个int变量a命名一个别名 b int &b a;b 20; cout<< a << endl;//a 20引用的注意事项 引用必须初始化 int &b;//错误的引用在初始化后&…

Wav2Lip实践

1. 安装 1.1 安装 conda以指定python版本运行环境 下载&#xff1a;Index of /https://repo.anaconda.com/archive/index.html 1.2 如按旧项目基于python3.6版本对话&#xff0c;会有很多包找不到的情况&#xff0c;经摸索后以python3.9构建成功&#xff0c; conda instal…

LT8711HE 是一款高性能的Type-C/DP1.2到HDMI2.0转换器

LT8711HE 1.描述 LT8711HE是一种高性能的Type-C/DP1.2到HDMI2.0转换器&#xff0c;设计用于连接USB Type-C源或DP1.2源到HDMI2.0接收器。LT8711HE集成了一个DP1.2兼容的接收器&#xff0c;和一个HDMI2.0兼容的发射机。此外&#xff0c;还包括两个CC控制器&#xff0c;用于CC通…

单例模式-java实现

介绍 单例模式的意图&#xff1a;保证某个类在系统中有且仅有一个实例。 我们可以看到下面的类图&#xff1a;一般的单例的实现&#xff0c;是属性中保持着一个自己的私有静态实例引用&#xff0c;还有一个私有的构造方法&#xff0c;然后再开放一个静态的获取实例的方法给外界…

【手撕C语言】多线程

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言,Linux基础,ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的一句鸡汤&#x1f914;&…

python 基础

1.Python 1.1 环境搭建&#xff1a;官网下载python&#xff0c;编译器&#xff1a;pycharm或jupyter 1.2 变量 &#xff08;1&#xff09;语法&#xff1a;变量名变量 &#xff08;2&#xff09;标识符命名规则&#xff1a;由数字、字母、下划线组成&#xff1b;不能以数字…

【数据结构与算法——TypeScript】数组、栈、队列、链表

【数据结构与算法——TypeScript】 算法(Algorithm)的认识 解决问题的过程中&#xff0c;不仅仅 数据的存储方式会影响效率&#xff0c;算法的优劣也会影响效率 什么是算法&#xff1f; 定义&#xff1a; &#x1f7e2; 一个有限指令集&#xff0c;每条指令的描述不依赖于言语…

UE5、CesiumForUnreal接入WMTS格式地图瓦片,如ArcGIS、Mapbox、天地图

文章目录 1.实现目标2.实现过程2.1 WMTS与TMS2.2 cesium-native改造2.3 CesiumForUnreal插件改造2.4 WMTS瓦片加载测试2.5 EPSG:3857与43263.参考资料1.实现目标 通过改造cesium-native和CesiumForUnreal插件,参考tms的栅格瓦片地图加载逻辑,实现在UE5中通过CesiumForUnreal…

后端进阶之路——万字总结Spring Security与数据库集成实践(五)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…

数据结构——空间复杂度

3.空间复杂度 空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟实践复杂…