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 <!--1-高亮显示 31-前景色红色 40-背景色黑色-->
- \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:49
- no,49比56小
- input one number:59
- yes,59确实比56大
- input one number:56
- congratulation your input the number is true
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')
说明:如果需要增加不同前景色或者背景色的组合输出,可以参考代码和上述颜色编号增加。
python 输出颜色与样式的方法的更多相关文章
- python输出颜色与样式的方法
一.输出颜色与样式的方法 上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python ...
- python 输出颜色的与样式的方法
上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章 ...
- 改变 C/C++ 控制台程序的输出颜色和样式
我们经常可以看见Linux自带终端下的许多程序都输出了不同颜色和底纹的字体.最近也想要自己实现一下这种效果,方法是在输出流中插入占位符\033[***. 我从网上收集了一些常用的控制语句,并用以下代码 ...
- 让python输出不自行换行的方法
1,在输出内容后加逗号 例: for i in range(1,6): j = 1 while(j <= 2*i - 1): print "*", ...
- Python 输出 log 到文件的方法
import loggingfrom logging.handlers import RotatingFileHandler module_name = "test_module" ...
- 色彩缤纷的python(改变字体颜色及样式不完全版)
色彩缤纷的python(改变字体颜色及样式) *补上昨天随笔中提到的改变字体颜色样式的方法,昨日随笔https://www.cnblogs.com/Du704/p/11265958.html 在项目过 ...
- 色彩缤纷的Python(改变字体颜色及样式)
色彩缤纷的python(改变字体颜色及样式) 在项目过程中,我们常常会因为输出信息的颜色与样式过于单调以至于让人在视觉上感到很杂乱,所以看下文: 在Linux终端中,使用转义序列来进行如上所述的显示, ...
- HTML5 Canvas 中的颜色、样式和阴影的属性和方法
颜色.样式和阴影的属性与方法 fillStyle 设置或返回用于填充绘画的颜色.渐变或模式 strokeStyle 设置或返回用于笔触的颜色.渐变或模式 ...
- 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)
用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...
随机推荐
- 设计模式学习心得<建造者 Builder>
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 一个 Builder 类会一步一步构造最 ...
- Spring MVC 上传和下载文件
上传文件 Commons FileUpload 元件 Servlet 3.0 本地文件上传特性 HTML 5 下载文件
- Alpha 冲刺 (5/10)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 协助前后端接口的开发 测试项目运行的服务器环 ...
- MFC中List控件动态填充数据(LVN_GETDISPINFO)
在使用List控件的过程中,有时候List控件中需要添加大量的数据,如果使用InsertItem填充,会一次性将数据全部添加进List控件中,比较耗时.这里记录下如何动态添加List控件数据. 步骤 ...
- 05 IO和管道
目录 三种I/O设备 把I/O重定向至文件 使用管道 知识铺垫 1)查看fd-文件描述符 (L) ll /proc/$$/fd 在Linux中,系统打开文件时会随机分配一个编号 ...
- <Listener>servletContextListener、httpSessionListener和servletRequestListener使用整理
在java web应用中,listener监听器似乎是不可缺少的.经常常使用来监听servletContext.httpSession.servletRequest等域对象的创建.销毁以及属性的变化等 ...
- Exception、Error、运行时异常与一般异常有何异同
转自博客 https://blog.csdn.net/m0_37531231/article/details/79502778 一.开场白 对于程序运行过程中的可能出现异常情况,java语言使用一种 ...
- zookeeper学习day01
1.zkAPI:(借助闭锁来实现) 1)创建闭锁对象 2)创建zk对象 3)连接zk客户端(连接成功执行countDown方法) 4)执行await方法(保证链接成功) 5)zk对象调用对 ...
- HTCVive使用
1.设备的安装与配置 https://wenku.baidu.com/view/fa172fd7482fb4daa48d4b44.html?from=search 2.接入SDK.实现简单示例场景.更 ...
- 学习WPF——使用Font-Awesome图标字体(一)
一.运行效果图 二.图标字体文件下载 http://fontawesome.dashgame.com/(这个网址可以下载图标字体文件) http://www.fontawesome.com.cn/(这 ...