自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個(gè)Python print函數(shù)竟有這么多騷操作

開(kāi)發(fā) 后端
本文將介紹如何輸出顏色字體到終端界面中。一起來(lái)看一下吧。

正文

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

?? Python 練手必備神器

?? Python 爬蟲實(shí)戰(zhàn)必備神器

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

1. ANSI 轉(zhuǎn)義序列

其實(shí)終端不僅能夠顯示程序的輸出。它可以顯示移動(dòng)光標(biāo)、為文本著色、清除整個(gè)屏幕,并且不僅僅是靜態(tài)輸出。比如顏色字體或者閃爍的光標(biāo)或者是進(jìn)度條。

我們通過(guò)使用特殊的輸出字符串改變終端的輸出行為,最簡(jiǎn)單的例子便是換行這個(gè)例子:\n

2. 配色方案

有兩種配色方案廣泛應(yīng)用于終端中:

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

16 色

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

首先舉一個(gè)例子 :

\033[1;32;40m

這里 \033[ 是轉(zhuǎn)義字符 1 代表高亮,32 代表前景色為綠色,背景色為黑色。

輸出到終端則是這個(gè)效果:

轉(zhuǎn)義字符

轉(zhuǎn)義字符可以有三種形式

  •  十六進(jìn)制:\x16[
  •  Unicode:\u001b[
  •  八進(jìn)制:\033[

樣式

這個(gè)樣式指的是字體的顯示樣式:

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

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

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

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

具體效果看下面的動(dòng)圖:


需要注意的是具體的效果可能收到使用的終端的限制,目前在CMD中輸出并不會(huì)被識(shí)別,但是在window terminal中是成功的輸出以上內(nèi)容。另外,搜索公眾號(hào)頂級(jí)科技后臺(tái)回復(fù)“API接口”,獲取一份驚喜禮包。

顏色設(shè)置

前景色: 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍(lán)色)、35(洋 紅)、36(青色)、37(白色)

背景色: 40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍(lán)色)、45(洋 紅)、46(青色)、47(白色)

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

print('\033[1;30;40m這是一行黑色測(cè)試字體\033[0m')
print('\033[1;31;40m這是一行紅色測(cè)試字體\033[0m')
print('\033[1;32;40m這是一行綠色測(cè)試字體\033[0m')
print('\033[1;33;40m這是一行黃色測(cè)試字體\033[0m')
print('\033[1;34;40m這是一行藍(lán)色測(cè)試字體\033[0m')
print('\033[1;35;40m這是一行洋紅測(cè)試字體\033[0m')
print('\033[1;36;40m這是一行青色測(cè)試字體\033[0m')
print('\033[1;37;40m這是一行白色測(cè)試字體\033[0m')

背景色:

print('\033[1;37;40m這是一行黑色測(cè)試背景\033[0m')
print('\033[1;37;41m這是一行紅色測(cè)試背景\033[0m')
print('\033[1;37;42m這是一行綠色測(cè)試背景\033[0m')
print('\033[1;37;43m這是一行黃色測(cè)試背景\033[0m')
print('\033[1;37;44m這是一行藍(lán)色測(cè)試背景\033[0m')
print('\033[1;37;45m這是一行洋紅測(cè)試背景\033[0m')
print('\033[1;37;46m這是一行青色測(cè)試背景\033[0m')
print('\033[1;37;47m這是一行白色測(cè)試背景\033[0m')

Colorama 一個(gè)顏色輸出的模塊

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

from colorama import init, Fore, Back, Style
# Initializes Colorama
init(autoreset=True)
print(Style.BRIGHT + Back.YELLOW + Fore.RED + "from colorama import init, Fore, Back, Style
# Initializes Colorama
init(autoreset=True)
print(Style.BRIGHT + Back.YELLOW + Fore.RED + "Colorama ")")

簡(jiǎn)單的變色函數(shù)

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
}
def set_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'\033[{style_code};{text_color_code};{back_color_code}m{str}\033[0m'
return print_text

256色

256色的輸出格式和16色的有點(diǎn)不一樣。

轉(zhuǎn)義字符和上面的是一樣的:

  • 十六進(jìn)制:\x16[
  • Unicode:\u001b[
  • 八進(jìn)制:\033[

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

如果想要同時(shí)修改,則使用兩個(gè)這樣的語(yǔ)句即可:

print("\033[48;5;160m\033[38;5;231m背景前景修改ABCDE \033[38;5;226m前景修改ABCDE\033[0;0m")

輸出一下所有的前景顏色:

def print_colors_256(color_code):
num1 = str(color_code)
num2 = str(color_code).ljust(3, ' ')
if color_code % 16 == 0:
return(f"\033[38;5;{num1}m {num2} \033[0;0m\n")
else:
return(f"\033[38;5;{num1}m {num2} \033[0;0m")
print("256 color scheme:")
print('',end=' ')
print(' '.join([print_colors_256(x) for x in range(256)]))

這個(gè)效果可能和你的終端輸出不一致,這可能是因?yàn)槲覀兊慕K端使用了不同的主題,對(duì)顏色有著不同的修改。

責(zé)任編輯:龐桂玉 來(lái)源: Python小二
相關(guān)推薦

2018-06-26 15:00:24

Docker安全風(fēng)險(xiǎn)

2018-12-05 14:29:22

2020-04-07 19:16:31

微信隱藏功能移動(dòng)應(yīng)用

2022-07-06 11:47:27

JAVAfor循環(huán)

2017-12-21 19:38:50

潤(rùn)乾中間表

2021-01-14 05:08:44

編譯鏈接

2022-07-26 23:43:29

編程語(yǔ)言開(kāi)發(fā)Java

2018-12-11 12:58:20

CPU散熱器鰭片

2023-11-13 08:49:54

2024-02-20 08:09:51

Java 8DateUtilsDate工具類

2013-01-15 09:41:45

編程語(yǔ)言

2021-09-28 12:25:30

數(shù)據(jù)庫(kù)

2019-08-27 08:17:57

云計(jì)算安全云服務(wù)商

2017-07-04 14:01:40

機(jī)房機(jī)柜

2017-07-12 08:20:32

閃存用途企業(yè)

2025-04-22 09:02:55

2020-06-01 08:04:18

三目運(yùn)算符代碼

2021-05-27 07:54:21

JavaStateAQS

2020-07-09 14:57:24

HTTP瀏覽器協(xié)議

2022-09-21 10:45:42

局域網(wǎng)Mesh網(wǎng)絡(luò)結(jié)構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)