[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
会让 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