字体样式
回忆上次内容
m 可以改变字体样式
- 0-10 之间设置的都是字体效果
- 0 复原
- 1 变亮
- 2 变暗
- 从3到10 又是什么效果 呢??
- 真的可以blink闪烁吗?
3m
- 3m 实现斜体字的效果
4m
- 4m 对应着下划线
控制范围
通过控制字符串的位置
- 可以控制效果范围
print("\033[0mthis is an \033[4manchor\033[0m")
print("\033[0mthis is \033[4man anchor\033[0m")
print("\033[0mthis is\033[4m an anchor\033[0m")
标准输出流中的 所有文字
- 都可以 控制样式
- 属性可以叠加吗?
属性叠加
- 先变亮(\033[1m)、再加下划线(\033[4m)
- 先加下划线(\033[4m)、再变亮(\033[1m)
- 效果一样
- 可以 交换次序
- 变暗 也可以 与下划线叠加
- 可以 简化控制序列 吗?
简化写法
合并同类项
- 把需要加的标记 进行汇总
- 用;做为分割符
- 这套规则 来自于
什么
呢?
VT100
规则来自于 终端一代神机
- DEC 的 VT100
- 下图为 VT100 说明书
很多东西 都可以 从VT100看出端倪
- 八进制转义
- ESC
- 分号分隔符
- 4m是 下划线
- 5m呢?
继续尝试
5m、6m 本应是
- 快闪、慢闪
但是 现在看起来 效果是一样的
- 可以 编程实现
快闪
效果吗? - 动手试试
- 可以 编程实现
快闪
- 编码
import time
for i in range(1000):
if i % 2 == 0:
print("\roeasy",end="")
else:
print("\r ",end="")
time.sleep(0.2)
- 再往后看看
7m
7m 是反相
- 把前景和背景色交换
- 黑变白
- 白变黑
- 颠倒黑白
8m
- 8m对应隐藏
隐藏比较复杂
- 因为完全看不见了
9m
- 9m对应中划线
- 划掉
- 不喜欢的统统划掉
字体设置
10-19 定义为字体设置
- 但是 实际上 没有效果
20-29
20-29
- 20 设置字体
21-29部分和1-9一一对应
- 是取消相应的效果
1是变亮
- 21 是取消变亮
2是变暗
- 22 是取消变暗
23-29
- 取消 3-9 的字体效果
- 0 是全部取消
效果
- 0m 确实可以清除此后所有的样式
29m 可以专门地清除
- 此后的 中划线样式
但如果一开始的时候
- 既有中划线样式
- 又高亮
- 会如何呢?
专门清除
注意后面hate you 部分
- 取消了下划线样式
- 但没有取消高亮样式
除非 控制序列的 新要求
- 否则 标准输出流
- 会一直
保持
各种字体样式
那么29m以后
- 控制的又是什么呢?
29m以后
居然好像真的是颜色设置了
- 前景色
- 背景色
- 可以搞点 好玩的 东西啦!!!
总结
m 可以改变字体样式
- 0-9 之间设置的都是字体效果
- 0 重置为默认
- 1 变亮
- 2 变暗
- 3 斜体
- 4 下划线
- 5 慢闪
- 6 快闪
- 7 前景背景互换
- 8 隐藏
- 9 中划线
叠加效果
- \33[1;3moeasy
- ;分割
取消效果
- 21 取消 1
- 22 取消 2
- 23 取消 3
- 一直到 29
- 0 是全部取消,回到默认
最后发现
- 真的可以 设置颜色???
- 我们下次再说!
- 蓝桥->https://www.lanqiao.cn/course...
- github->https://github.com/overmind19...
- gitee->https://gitee.com/overmind198...
- 视频->https://www.bilibili.com/vide... 作者:oeasy