[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
字体样式
回忆上次内容
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 timefor 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/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy