一 實現過程
終端的字符顏色是用轉義序列控制的,是文本模式下的系統顯示功能,和具體的語言無關。
轉義序列是以ESC開頭,即用\033來完成(ESC的ASCII碼用十進制表示是27,用八進制表示就是033)。
二 書寫格式
開頭部分:\033[顯示方式;前景色;背景色m
結尾部分:\033[0m
完整格式: \033[顯示方式;前景色;背景色m要打印的文字\033[0m 如果有空格,空格也會打印出來
注意:開頭部分的三個參數:顯示方式,前景色,背景色是可選參數,可以只寫其中的某一個;另外由於表示三個參數不同含義的數值都是唯一的沒有重復的,所以三個參數的書寫先后順序沒有固定要求,系統都能識別;但是,建議按照默認的格式規范書寫。
對於結尾部分,其實也可以省略,但是省略后,如果打印了背景色,則整行都會有背景色(包括沒有字體的部分),故為了書寫規范,建議\033[***開頭,\033[0m結尾。
三 數值表示的參數含義:
顯示方式: 0(默認值)、1(高亮,即加粗)、4(下划線)、7(反顯)、
前景色: 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(梅色)、36(青色)、37(白色)
背景色: 40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(梅色)、46(青色)、47(白色)
四 常見開頭格式:
\033[0m 默認字體正常顯示,不高亮
\033[32;0m 紅色字體正常顯示
\033[1;32;40m 顯示方式: 高亮 字體前景色:綠色 背景色:黑色
\033[0;31;46m 顯示方式: 正常 字體前景色:紅色 背景色:青色
五 實例:
(1)
print("\033[1;31;40m您輸入的帳號或密碼錯誤!\033[0m") 標准寫法
print("\033[1;31;40m您輸入的帳號或密碼錯誤!")
上方代碼的輸出格式為:字體高亮,紅色前景,黃色背景 PS:前景色也就是字體的顏色
上面兩行代碼的結果如下:
對於結尾部分,其實也可以省略,但是省略后,如果打印了背景色,則整行都會有背景色(包括沒有字體的部分)
(2)
print("\033[0;31m%s\033[0m" % "輸出紅色字符") 標准寫法
print("\033[31m%s\033[0m" % "輸出紅色字符") 顯示方式為0時,可以省略
print("\033[31m%s" % "輸出紅色字符")
#上方代碼的輸出格式為:字體默認,紅色前景,無背景色
結果如下:
沒有背景色時,上面3種方式都能得到想要的效果