[oeasy]python0068_ 字體樣式_正常_加亮_變暗_控制序列
字體樣式
回憶上次內(nèi)容
上次了解了一個新的轉(zhuǎn)義模式
\33 逃逸控制字符 esc
esc 讓輸出 退出標準輸出流
可以清屏
也可以設置光標輸出的位置
進行控制信息的設置

還能做什么呢?
可以設置字符的顏色嗎?????
查看細節(jié)
回憶
控制序列 前導符
\033[
\
是轉(zhuǎn)義字符一起 構成轉(zhuǎn)義序列
要和 后面的內(nèi)容
\033
是轉(zhuǎn)義序列轉(zhuǎn)化含義
轉(zhuǎn)義序列
\033
對應的 字符含義 是Escape
再次 逃逸 出去
轉(zhuǎn)義轉(zhuǎn)義
字符串 里面出現(xiàn)了
Escape
后能逃去到哪里呢?
從 輸出的字符串 中
Escape
出去后面的內(nèi)容 不是純文本了
而是 控制序列(Control Sequence)
具體控制
\033[
是CSI
CSI n m
CSI
之后的是ansi給的關于字體樣式的設置細節(jié)

上圖中的
CSI
Control Sequence Introducer
控制序列前導符
CSI
就是\033[
上圖中的
n
對應0-10的一個數(shù)字
上圖中的m 說明
SGR (Select Graphic Rendition) parameters
選擇圖形渲染 參數(shù)
這是 要進行 外觀設置
這個 部分屬于
正如上次
用
H
控制位置n從1-10
具體是 設置了些
什么
呢?
具體設置
從1m 到10m

我們 試試
1m、0m

結(jié)構是
\033[1m
\033
是逃逸字符1 對應著 增亮或變粗
0 對應著 還原
m 是 固定的格式要求
好像顏色 是有點 不一樣

我可以 把\033 簡化為 \e 么?
回到python游樂場
嘗試\e

實踐結(jié)論
\033 可以進入 字體控制模式
\e 目前 在python中 不支持
但是 在shell中 呢?

shell中 支持\e
還是 回到游樂場
2m

2 和 1 相反
1m 更亮
2m 更暗
0m 還原

這
一會兒亮
一會兒暗
好像 挺好玩的
編寫程序

i%3 是讓i對于3取余數(shù)
得到0、1、2三種可能
i 從1到100
設置文字在"正常"、"亮"、"暗"中 循環(huán)
color在"0"、"1"、"2"中 循環(huán)
冷卻時間是 0.2s

規(guī)律性很強
其實 亮和暗
可以得到 更好玩的東西
bb
可以 看看這個
里面 用字符畫風格
實現(xiàn) 三維旋轉(zhuǎn)

應該是 視頻按幀 轉(zhuǎn)化過來的
很好玩!
亮和暗 沒有那么規(guī)律
引入 隨機亂序
引入隨機
import random

random.random() 在 [0,1) 之間
(0 或者 1)
random.random()*2 在 [0,2) 之間
int(random.random()*2 ) 得到 {0,1}

隨機翻倍

random.random() 在 (0,1) 之間
random.random()*2 在 [0,2) 之間

int(random.random()*3 )
(0 或 1 或 2)
得到 {0, 1, 2}
亂序
import timeimport randomwhile True: ? ?csi= "\033[" ? ?color = int(random.random()*3) ? ?num = int(random.random()*2) ? ?print(csi + str(color) + "m" + str(num),end="")數(shù)字是
0 或 1
顏色是
亮 \33[1m
正常 \33[0m
暗 \33[2m
效果
這下確實 亂了起來??

而且是
毫無規(guī)律地
亂了起來
看看 后面
還有什么好玩
總結(jié)
m 可以改變字體樣式
0-10 之間設置的都是字體效果
0 重置為默認
1 變亮
2 變暗

從3到10都是什么效果呢??

真的可以blink閃爍嗎???
我們下次再說!??
藍橋->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