python color属性_python 输出颜色与样式的方法

上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇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大

input one number:56congratulation your input the numberis true

1226410-20170829170907077-280237828.png

python在cmd上打印彩色文字

注意:只能在cmd中显示颜色,在编译器里就不行了(可能此方法只在Windows控制台有作用)

直接介绍GetStdHandle() 和SetConsoleTextAttribute()这两个API

1,GetStdHandle()

其作用是获取输入,输出/错误的屏幕缓冲区的句柄,函数声明如下:

HANDLE GetStdHandle(

DWORD nStdHandle

);

其参数nStdHandle的值为下面几种类型的一种:

STD_INPUT_HANDLE 标准输入的句柄

STD_OUTPUT_HANDLE 标准输出的句柄

STD_ERROR_HANDLE 标准错误的句柄

GetStdHandle() 返回标准的输入,输出或错误的设备的句柄,也就是获得输入,输出/错误的屏幕缓冲区的句柄。

2,SetConsoleTextAttribute()

其作用是在控制台中设置输入或者输出文本的文字颜色和背景颜色。其函数声明如下:

BOOL SetConsoleTextAttribute(

HANDLE hConsoleOutput, // console 屏幕缓冲区的句柄

WORD wAttributes // 文本及背景的颜色

);

文本与背景的颜色设置可以参考Windows上“color/?” 命令的说明。颜色属性是由两个十六进制数字指定———第一个为背景,第二个为前景,每个数字可以为下面任何值之一(上面也有),如下:

= 黑色 8 = 灰色

= 蓝色 9 = 淡蓝色

= 绿色 A = 淡绿色

= 浅绿色 B = 淡浅绿色

= 红色 C = 淡红色

= 紫色 D = 淡紫色

= 黄色 E = 淡黄色

= 白色 F = 亮白色

如果函数设置文本及背景颜色成功,则返回非0.如果设置失败则返回0.

prt_cmd_color.py参考代码如下:

#-*- 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')

说明:如果需要增加不同前景色或者背景色的组合输出,可以参考代码和上述颜色编号增加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值