[oeasy]python0085_[趣味拓展]字體樣式_下劃線_中劃線_閃動效果_反相_取消效果
字體樣式
回憶上次內(nèi)容
\033 xm 可以改變字體樣式
0m 復原
1m 變亮
2m 變暗
0m - 10m 之間設(shè)置的 都是字體效果

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

真的可以
讓文字 blink閃爍嗎???
3m

3m 實現(xiàn)斜體字的效果
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)
效果一樣

變暗 也可以 與下劃線疊加

可以 簡化控制序列 嗎?
簡化寫法
合并同類項
把需要加的標記 進行匯總
用;做為分割符

這套規(guī)則 來自于
什么
呢?
VT100
規(guī)則來自于 終端一代神機
DEC 的 VT100
下圖為 VT100 說明書
https://vt100.net/docs/vt100-ug/chapter3.html

很多東西 都可以 從VT100看出端倪
八進制轉(zhuǎn)義表示法
控制序列前導符 ESC[
分號分隔符
4m是 下劃線
5m呢?
繼續(xù)嘗試
5m、6m 本應是
快閃、慢閃

但是 現(xiàn)在看起來 效果是一樣的
可以 編程實現(xiàn)
快閃
效果嗎?動手試試
快閃

編碼
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對應中劃線

劃掉

不喜歡的統(tǒng)統(tǒng)劃掉
字體設(shè)置

10-19 定義為字體設(shè)置
但是 實際上 沒有效果

20-29
20-29
一一對應
取消相應 的 效果
20 設(shè)置字體
21-29部分 和 1-9

1是變亮
21 是取消變亮
2是變暗
22 是取消變暗
23-29
取消 3-9 的字體效果
0 是全部取消
效果
0m 確實可以清除此后所有的樣式
29m 可以專門地清除
此后的 中劃線樣式
但如果一開始的時候
既有中劃線樣式
又高亮
會如何呢?
專門清除
注意后面hate you 部分
取消了下劃線樣式
但沒有取消高亮樣式
除非 控制序列的 新要求
否則 標準輸出流
會一直
保持
各種字體樣式那么29m以后
控制的又是什么呢?
29m以后
居然好像真的是顏色設(shè)置了 ??
前景色
背景色
可以搞點 好玩的 東西啦?。?!??
總結(jié)
m 可以改變字體樣式
0-9 之間設(shè)置的都是字體效果
0 重置為默認
1 變亮
2 變暗
3 斜體
4 下劃線
5 慢閃
6 快閃
7 前景背景互換
8 隱藏
9 中劃線
疊加效果
\33[1;3moeasy
;分割
取消效果
21 取消 1
22 取消 2
23 取消 3
一直到 29
0 是全部取消,回到默認
最后發(fā)現(xiàn)
真的可以 設(shè)置顏色?????
我們下次再說!??
藍橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython