一、输出颜色与样式的方法

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

  

举个例子,这里小编写了一个数字比大小的程序,若猜正确,则结果是正常;若猜的不正确,结果都有颜色标记,帮助你改进

print('\033[0;32;40m欢迎使用学生选课系统\033[0m')
try:
    num = int(input('请输入数字选择功能 :'))
except Exception as e:
    print('\033[31m对不起!您输入的内容有误~\033[0m')

代码结果:

二、在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输出颜色与样式的方法的更多相关文章

  1. python 输出颜色与样式的方法

    上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章 ...

  2. python 输出颜色的与样式的方法

    上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章 ...

  3. 改变 C/C++ 控制台程序的输出颜色和样式

    我们经常可以看见Linux自带终端下的许多程序都输出了不同颜色和底纹的字体.最近也想要自己实现一下这种效果,方法是在输出流中插入占位符\033[***. 我从网上收集了一些常用的控制语句,并用以下代码 ...

  4. 让python输出不自行换行的方法

    1,在输出内容后加逗号 例: for i in range(1,6):    j = 1    while(j <= 2*i - 1):        print "*",  ...

  5. Python 输出 log 到文件的方法

    import loggingfrom logging.handlers import RotatingFileHandler module_name = "test_module" ...

  6. 色彩缤纷的python(改变字体颜色及样式不完全版)

    色彩缤纷的python(改变字体颜色及样式) *补上昨天随笔中提到的改变字体颜色样式的方法,昨日随笔https://www.cnblogs.com/Du704/p/11265958.html 在项目过 ...

  7. 色彩缤纷的Python(改变字体颜色及样式)

    色彩缤纷的python(改变字体颜色及样式) 在项目过程中,我们常常会因为输出信息的颜色与样式过于单调以至于让人在视觉上感到很杂乱,所以看下文: 在Linux终端中,使用转义序列来进行如上所述的显示, ...

  8. HTML5 Canvas 中的颜色、样式和阴影的属性和方法

    颜色.样式和阴影的属性与方法 fillStyle                设置或返回用于填充绘画的颜色.渐变或模式 strokeStyle         设置或返回用于笔触的颜色.渐变或模式 ...

  9. 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)

    用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...

随机推荐

  1. 网站调用qq第三方登录

    1. 准备工作 (1) 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. ① 注册QQ互联开发者账号  网址  https:/ ...

  2. UC972开发板,参考实验8,完成定时器触发信号输出实验

    代码 ETIMER0 TGL --> PB2 #include "nuc970.h" #include "sys.h" #include "et ...

  3. 6_16 单词(UVa10129)<欧拉回路>

    考古学家有时候遇到一些神秘的门,这些门需要解开特定的谜题才能打开.因为没有其他方法可以打开门,这谜题对我们来说非常重要.在门上有许多磁盘,每个盘子上有一个英文单字在上面.这些盘子必须被安排,使得盘子上 ...

  4. 忘记win8开机密码的清除方法

    1.进PE 2.打开计算机,进入 C:\Windows\System32 目录下 3.找到 magnify.exe 改名为 mangify1.exe .将 cmd.exe 改名为 magnify.ex ...

  5. Bugku-CTF之细心 (想办法变成admin)

    Day30     细心

  6. c++中sort函数调用报错Expression : invalid operator <的内部原理

    当我们调用sort函数进行排序时,中的比较函数如果写成如下 bool cmp(const int &a, const int &b) { if(a!=b) return a<b; ...

  7. 素问 - 信贷和GDP

    摘自<小韭的学习圈> Q:近期看到2019年金融统计数据,全年人民币贷款增加16.81万亿元,同比多增6439亿元.这里有个问题我储备好久了,没有高人指点俺.请问2019年全年GDP近10 ...

  8. C#中的switch

    switch 表达式支持的类型为 sbyte.byte.short.ushort.int.uint.long.ulong.char.string 或枚举类型,或者可以隐试转换到这些类型的自定义对象或其 ...

  9. 03hive_DDL数据定义

    一. DDL数据定义 创建数据库 1)create database db_hive; 2)避免要创建的数据库已经存在错误,增加 if not exists 判断. create database i ...

  10. Python学习之字典集合篇

    lambda表达式:起到一个函数速写的作用,允许在代码内嵌入一个函数的定义; filter()函数:1.用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表.2.接收两个参数,第一个为 ...