国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何輸出顏色字體到終端界面中

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 作者:馬哥Linux運維 ? 2022-08-29 10:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在終端中,輸出的字體總是單一顏色的,黑底白字。但是在一些場景并不能很好的滿足輸出的需求,比如在大量而快速輸出中,輸出一些提示性或者警告性的信息,普通的黑底白字輸出可能或起不到作用。

本文將介紹如何輸出顏色字體到終端界面中。

# 1. ANSI 轉義序列

其實終端不僅能夠顯示程序的輸出。它可以顯示移動光標、為文本著色、清除整個屏幕,并且不僅僅是靜態輸出。比如顏色字體或者閃爍的光標或者是進度條。

我們通過使用特殊的輸出字符串改變終端的輸出行為,最簡單的例子便是換行這個例子:

# 2. 配色方案

有兩種配色方案廣泛應用于終端中:

16 色 (8 背景 + 8 前景)前景即是字體本身的顏色

255 色

16 色

16色的配色方案包含兩個顏色設置,每個8色,一個是背景色一個是字體色(也即前景色),這個配色方案的語法格式如下:

2d1d3ee2-26d9-11ed-ba43-dac502259ad0.png

首先舉一個例子 :

?33[1;32;40m

這里 ?33[ 是轉義字符 1 代表高亮,32 代表前景色為綠色,背景色為黑色

輸出到終端則是這個效果:

2d2d2910-26d9-11ed-ba43-dac502259ad0.png

轉義字符

轉義字符可以有三種形式

十六進制:x16[

Unicode:u001b[

八進制:?33[

樣式

這個樣式指的是字體的顯示樣式:

0(默認值)、1(高亮)、22(非粗體)

4(下劃線)、24(非下劃線)、 5(閃爍)

25(非閃爍)、7(反顯)、27(非反顯)

print('?33[0;32;40m這是一行測試字體?33[0m')
print('?33[1;32;40m這是一行測試字體?33[0m')
print('?33[22;32;40m這是一行測試字體?33[0m')
print('?33[4;32;40m這是一行測試字體?33[0m')
print('?33[24;32;40m這是一行測試字體?33[0m')
print('?33[5;32;40m這是一行測試字體?33[0m')
print('?33[25;32;40m這是一行測試字體?33[0m')
print('?33[7;32;40m這是一行測試字體?33[0m')
print('?33[27;32;40m這是一行測試字體?33[0m')

具體效果看下面的動圖:

2d3da66e-26d9-11ed-ba43-dac502259ad0.gif

需要注意的是具體的效果可能收到使用的終端的限制,目前在CMD中輸出并不會被識別,但是在window terminal中是成功的輸出以上內容。

顏色設置

前景色: 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋 紅)、36(青色)、37(白色)
背景色: 40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋 紅)、46(青色)、47(白色)

前景色,即字體顏色的展示:

print('?33[1;30;40m這是一行黑色測試字體?33[0m')
print('?33[1;31;40m這是一行紅色測試字體?33[0m')
print('?33[1;32;40m這是一行綠色測試字體?33[0m')
print('?33[1;33;40m這是一行黃色測試字體?33[0m')
print('?33[1;34;40m這是一行藍色測試字體?33[0m')
print('?33[1;35;40m這是一行洋紅測試字體?33[0m')
print('?33[1;36;40m這是一行青色測試字體?33[0m')
print('?33[1;37;40m這是一行白色測試字體?33[0m')
2d567aa4-26d9-11ed-ba43-dac502259ad0.png

背景色:

print('?33[1;37;40m這是一行黑色測試背景?33[0m')
print('?33[1;37;41m這是一行紅色測試背景?33[0m')
print('?33[1;37;42m這是一行綠色測試背景?33[0m')
print('?33[1;37;43m這是一行黃色測試背景?33[0m')
print('?33[1;37;44m這是一行藍色測試背景?33[0m')
print('?33[1;37;45m這是一行洋紅測試背景?33[0m')
print('?33[1;37;46m這是一行青色測試背景?33[0m')
print('?33[1;37;47m這是一行白色測試背景?33[0m')
2d649bde-26d9-11ed-ba43-dac502259ad0.png

Colorama 一個顏色輸出的模塊

每次輸入輸出都需要如此配置是非常麻煩的事,Colorama 提供方便的字體顏色輸出的配置

fromcoloramaimportinit,Fore,Back,Style

#InitializesColorama
init(autoreset=True)

print(Style.BRIGHT+Back.YELLOW+Fore.RED+"fromcoloramaimportinit,Fore,Back,Style

#InitializesColorama
init(autoreset=True)

print(Style.BRIGHT+Back.YELLOW+Fore.RED+"Colorama")")
2dc9b884-26d9-11ed-ba43-dac502259ad0.png

簡單的變色函數

background_color_dict={
'BLACK':40,
'RED':41,
'GREEN':42,
'YELLOW':43,
'BLUE':44,
'MAGENTA':45,
'CYAN':46,
'WHITE':47
}

text_color_dict={
'BLACK':30,
'RED':31,
'GREEN':32,
'YELLOW':33,
'BLUE':34,
'MAGENTA':35,
'CYAN':36,
'WHITE':37
}

style_dict={
'normal':0,
'bold':1,
'light':2,
'italicize':3,
'underline':4,
'blink':5
}

defset_text_color(str_text,style,text_color,background_color):
str=str_text
style_code=style_dict[style]
text_color_code=text_color_dict[text_color]
back_color_code=background_color_dict[background_color]
print_text=f'?33[{style_code};{text_color_code};{back_color_code}m{str}?33[0m'
returnprint_text

256色

256色的輸出格式和16色的有點不一樣

2dd6b110-26d9-11ed-ba43-dac502259ad0.png

轉義字符和上面的是一樣的:

十六進制:x16[

Unicode:u001b[

八進制:?33[

標注顯示模式則是38或者48選擇一個表名后面顏色代碼是前景色還是背景色。

如果想要同時修改,則使用兩個這樣的語句即可:

print("?33[48;5;160m?33[38;5;231m背景前景修改ABCDE?33[38;5;226m前景修改ABCDE?33[0;0m")
2deffbca-26d9-11ed-ba43-dac502259ad0.png

輸出一下所有的前景顏色

defprint_colors_256(color_code):
num1=str(color_code)
num2=str(color_code).ljust(3,'')
ifcolor_code%16==0:
return(f"?33[38;5;{num1}m{num2}?33[0;0m
")
else:
return(f"?33[38;5;{num1}m{num2}?33[0;0m")

print("256colorscheme:")
print('',end='')
print(''.join([print_colors_256(x)forxinrange(256)]))
2e139472-26d9-11ed-ba43-dac502259ad0.png

這個效果可能和你的終端輸出不一致,這可能是因為我們的終端使用了不同的主題,對顏色有著不同的修改。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 屏幕
    +關注

    關注

    7

    文章

    1235

    瀏覽量

    57162
  • 終端
    +關注

    關注

    1

    文章

    1258

    瀏覽量

    31678
  • 界面
    +關注

    關注

    0

    文章

    59

    瀏覽量

    15972

原文標題:一個 print 函數,挺會玩啊?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    打開工程后工程字體沒有顯示,如字符串,數字等控件不能預覽顯示字體

    打開工程后工程字體沒有顯示,如字符串,數字等控件不能預覽顯示字體
    發表于 02-25 17:39

    無法去除 Python VisionFive.i2c 庫的終端輸出

    方法,終端都會輸出 “i2c_dev: /dev/i2c-0” 這樣的字段 這個字段既不是 stderr 也不是 stdout,完全去不掉 因為用的 Python 的 curses 庫設計的交互界面
    發表于 02-25 06:13

    字符串,數字控件如何控制背景顏色和前景字體顏色

    字符串,數字控件如何控制背景顏色和前景字體顏色
    發表于 01-20 15:12

    不同光照模擬下的車載 AR-HUD 顏色可見性評估

    車載增強現實抬頭顯示系統(AR-HUD)對提升駕駛安全至關重要,但其顯示效果受環境光照影響顯著。為評估不同光照下AR-HUD界面顏色的可見性,本研究采用紫創測控luminbox的太陽光模擬器模擬真實
    的頭像 發表于 01-09 18:03 ?204次閱讀
    不同光照模擬下的車載 AR-HUD <b class='flag-5'>顏色</b>可見性評估

    如何在Keil設置窗口標題顏色和背景顏色呢?

    如何在Keil設置窗口標題顏色和背景顏色
    發表于 12-10 07:56

    e203仿真helloworld例程printf能在終端顯示的原理

    我在這里分享給大家。 實現原理 在仿真的終端打印信息,是需要軟件部分和RTL設計相互配合的。 軟件層面 c語言里,printf函數可以說是人盡皆知。在pc端,由于操作系統提供了標準輸出界面,因此
    發表于 10-27 06:56

    2025年AI 智能終端和SoC芯片解讀(

    AI智能終端經驗分享
    電子發燒友網官方
    發布于 :2025年09月15日 16:44:48

    終端GBK編碼顯示錯誤的原因?怎么解決?

    RT-thread studio終端,使用UTF8編碼中文顯示正常,使用GBK編碼時終端顯示亂碼。(以使用其他串口助手等核驗過串口數據,例如GBK下輸出“中文”D6 D0 CE C4,在
    發表于 09-11 07:50

    Allegro Skill字符功能之設置字符位置及字體

    在PCB設計過程,當大量器件被導入PCB板上時,可能會出現器件絲印字體相互重疊,使得器件位號難以辨認的情況。
    的頭像 發表于 06-28 09:46 ?2470次閱讀
    Allegro Skill字符功能之設置字符位置及<b class='flag-5'>字體</b>

    在env終端勾選了tiflte support后燒錄mdk板子上后就開始顯示連接不到,無法部署模型怎么解決?

    在env終端勾選了tiflte support后燒錄mdk板子上后就開始顯示連接不到 無法部署模型
    發表于 06-11 08:11

    互聯世界的人機界面 (HMI) 和網關

    作者:Tawfeeq Ahmad 在當今的數字化環境,人機界面 (HMI) 和網關已成為不可或缺的組成部分,實現了人與復雜系統之間的無縫互動。隨著各行各業之間的聯系越來越緊密,這些技術在提高生產力
    的頭像 發表于 05-25 11:17 ?1049次閱讀
    互聯世界<b class='flag-5'>中</b>的人機<b class='flag-5'>界面</b> (HMI) 和網關

    岳冉掃描打印一體手持終端高效移動辦公 #手持終端 #PDA

    終端
    yueranxinxi
    發布于 :2025年05月12日 17:34:16

    求助,關于GUIguider1.9.0主界面上方生成字體功能問題求解

    GUIguider1.9.0 主界面上方 工具-->>生成字體選項,生成的字體 會在單獨的一個文件,在主界面上,假如創建一個
    發表于 03-28 07:07

    顏色如何影響PCBA加工成本?一文帶你揭秘

    一站式PCBA智造廠家今天為大家講講影響PCBA板顏色選擇的因素有哪些?PCBA板顏色對PCBA加工成本的影響。在PCBA制造過程顏色是PCB板設計的一個可選項,通常并不影響電路板
    的頭像 發表于 03-10 09:27 ?861次閱讀