您的位置:首页 > 资讯 > 正文
[oeasy]python0083_[趣味拓展]字体样式_正常_加亮_变暗_控制序列
来源:哔哩哔哩 发布时间2023-08-10 21:21:23    

字体样式


(相关资料图)

回忆上次内容

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

\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

会让 python3 引入自己

注意

import timefor i in range(100):    csi = "\033["    color = str(i % 3)    print(csi + color + "moeasy")    ()

i%3 是让 i对3取余

得到0、1、2三种可能

代码

i 从1到100

设置文字在"正常"、"亮"、"暗"中 循环

color在"0"、"1"、"2"中 循环

冷却时间是

规律性很强

其实 通过亮和暗

可以得到 更好玩的东西

bb

可以 看看bb 这个应用

在shell中 安装bb

sudo apt install bb

键入 bb 直接运行

实现 三维旋转

bb里面 用字符画风格

应该是 视频按帧 转化过来的

很好玩!

可以 引入随机吗?

引入随机

进入python游乐场

import randomhelp random

先看看帮助文档

() 在 [0,1) 之间

()*2 在 [0,2) 之间

{0,1}

(0 或者 1)

int(()*2) 得到 整数

随机翻倍

想要让屏幕显示

0或者1

() 在 (0,1) 之间

()*2 在 [0,2) 之间

再用int函数取整

(0 或 1)

得到 {0, 1}

颜色的值 可以是

{0, 1, 2}

(0 或 1 或 2)

这又应该如何取得呢?

乱序

编辑一个py文件

注意文件名不能是

import timeimport randomwhile True:    csi= "\033["    color = int(()*3)    num = int(()*2)    print(csi + str(color) + "m" + str(num),end="")

数字是

0 或 1

颜色是

亮 \33[1m

正常 \33[0m

暗 \33[2m

效果

这下确实 乱了起来

而且是

乱了起来

毫无规律地

纷乱

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

视觉表象看起来

确实很乱

想要 总结规律

就要从视觉中抽象出来

总结

\033 xm 可以改变字体样式

0m 复原

1m 变亮

2m 变暗

0m - 10m 之间设置的 都是字体效果

从3m到10m

又是什么效果 呢??

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

我们下次再说!*

蓝桥->/courses/3584

github->/overmind1980/oeasy-python-tutorial

gitee->/overmind1980/oeasypython

关键词:

推荐内容