上次遇到這個問題就想寫下來,其實當時我也不怎麼會,老師說這個東西不需要理解,只需要死記硬背,寫的多了就記住了,所以今天蒐集了幾篇文章,加上自己的理解,寫下了這篇python 輸出顏色的樣式與方法的文章,一方面想自己記錄下自己的理解,另一方面想用自己通俗的理解送給需要的盆友。
在寫python 程式**的時候,我們知道python 輸出的字串顏色和一般字元相同,但是許多時候,我們需要強調某些字元,需要把其變為易於認出的顏色或者顯著的樣子。小編這裡也蒐集到了新增顏色的格式,
格式:"\033[字背景顏色;字型顏色m————————\033[0m" (——————表示字串)
例如: "\033[42;37m there are ready color\033[0m"
格式:\033[顯示方式;前景色;背景色m舉個例子,這裡小編寫了乙個數字比大小的程式,若猜正確,則結果是正常;若猜的不正確,結果都有顏色標記,幫助你改進說明:前景色 背景色 顏色
---------------------------------------
30 40黑色
31 41紅色
32 42綠色
33 43黃色
34 44藍色
35 45紫紅色
36 46青藍色
37 47白色
顯示方式 意義
-------------------------0 終端預設設定
1高亮顯示
4使用下劃線
5閃爍7反白顯示
8不可見
例子:\033[1;31;40m \033[0m (這段程式是直接複製別人寫好的,感覺比我寫的好得多,而且全面)
_author_ = "**結果:zhanzhengrecheng
"for i in range(4):
number = input("
input one number:")
number =int(number)
if number >56:
print("
\033[37;44m yes,%s確實比56大\033[0m
"%number)
elif number == 56:
print("
congratulation your input the number is true")
break
else
:
print('
\033[34;43m no,%s比56小\033[0m
'%number)
else
:
print("
您的機會已經用完了
")
input one number:49no,49比56小input one number:59yes,59確實比56大
注意:只能在cmd中顯示顏色,在編譯器裡就不行了(可能此方法只在windows控制台有作用)
直接介紹getstdhandle() 和setconsoletextattribute()這兩個api
1,getstdhandle()
其作用是獲取輸入,輸出/錯誤的螢幕緩衝區的控制代碼,函式宣告如下:
handle getstdhandle(其引數nstdhandle的值為下面幾種型別的一種:dword nstdhandle
);
std_input_handle 標準輸入的控制代碼getstdhandle() 返回標準的輸入,輸出或錯誤的裝置的控制代碼,也就是獲得輸入,輸出/錯誤的螢幕緩衝區的控制代碼。std_output_handle 標準輸出的控制代碼
std_error_handle 標準錯誤的控制代碼
2,setconsoletextattribute()
其作用是在控制台中設定輸入或者輸出文字的文字顏色和背景顏色。其函式宣告如下:
bool setconsoletextattribute(文字與背景的顏色設定可以參考windows上「color/?」 命令的說明。顏色屬性是由兩個十六進製制數字指定———第乙個為背景,第二個為前景,每個數字可以為下面任何值之一(上面也有),如下:handle hconsoleoutput, // console 螢幕緩衝區的控制代碼
word wattributes // 文字及背景的顏色
);
= 黑色 8 = 灰色如果函式設定文字及背景顏色成功,則返回非0.如果設定失敗則返回0.= 藍色 9 = 淡藍色
= 綠色 a = 淡綠色
= 淺綠色 b = 淡淺綠色
= 紅色 c = 淡紅色
= 紫色 d = 淡紫色
= 黃色 e = 淡黃色
= 白色 f = 亮白色
#-*- coding:utf-8 -*-##filename: prt_cmd_color.py
import ctypes,sys
std_input_handle = -10
std_output_handle = -11
std_error_handle = -12
#字型顏色定義 text colors
foreground_blue = 0x09 # blue.
foreground_green = 0x0a # green.
foreground_red = 0x0c # red.
foreground_yellow = 0x0e # yellow.
# 背景顏色定義 background colors
background_yellow = 0xe0 # yellow.
# get handle
std_out_handle = ctypes.windll.kernel32.getstdhandle(std_output_handle)
def set_cmd_text_color(color, handle=std_out_handle):
bool = ctypes.windll.kernel32.setconsoletextattribute(handle, color)
return bool
#reset white
def resetcolor():
set_cmd_text_color(foreground_red | foreground_green | foreground_blue)
#green
def printgreen(mess):
set_cmd_text_color(foreground_green)
sys.stdout.write(mess + '\n')
resetcolor()
#red
def printred(mess):
set_cmd_text_color(foreground_red)
sys.stdout.write(mess + '\n')
resetcolor()
#yellow
def printyellow(mess):
set_cmd_text_color(foreground_yellow)
sys.stdout.write(mess + '\n')
resetcolor()
#white bkground and black text
def printyellowred(mess):
set_cmd_text_color(background_yellow | foreground_red)
sys.stdout.write(mess + '\n')
resetcolor()
if __name__ == '__main__':
printgreen('printgreen:gree color text')
printred('printred:red color text')
printyellow('printyellow:yellow color text')
python 輸出顏色與樣式
我們知道在命令列下,python輸出的字串顏色和一般字元相同,例如windows為黑背景白色字元。若我們想強調某些字元,可以利用下面的 將要強調部分變為red色。這個 在linux下可以,在windows下好像不能用。原理未知。def inred s return s 31 2m s s 0m ch...
python 輸出顏色與樣式
import os ported from def print nt foreground,newline,kw from ctypes import windll,structure,c short,c uint,byref 8 means highlight cc map closehandle...
python輸出帶顏色字型
在python開發的過程中,經常會遇到需要列印各種資訊。海量的資訊堆砌在控制台中,就會導致資訊都混在一起,降低了重要資訊的可讀性。這時候,如果能給重要的資訊加上字型顏色,那麼就會更加方便使用者閱讀了。當然了,控制台的展示效果有限,並不能像前段一樣炫酷,只能做一些簡單的設定。不過站在可讀性的角度來看,...