- 在调试代码时,存在众多的打印信息,对打印的字符串info设置不同的背景和颜色,这非常有助于调试者快速定位信息。本文结合python中的lambda函数和ASCII控制字符-“\033”,来实现自定义print效果
1. lambda函数
笔者自行理解为:定义了一种映射关系,输入是x,输出是:后面的部分。映射关系通过赋给的函数(如下例中的num_square)实现
num_square = lambda x: "{}的平方是{}".format(x, x**2)
print(num_square(8)) # 输出--> 8的平方是64
2. 控制字符 “\033”
print("\033[41;33m you are the best!!! \033[0m")
上述一行代码可以给待打印的字符串 you are the best!!! 添加红底黄字的效果。
其中 41 表示背景颜色:红色,36表示字体颜色:黄色;最后的 \033[0m表示关闭所有属性,如果不加,会把这个效果延续要整个以后的待print信息中。
自定义背景,字体颜色可根据下表更改即可(好用别忘了收藏,嘿嘿):
颜色 | 背景色 | 背景色(加深) | 前景色 | 前景色(加深) |
---|---|---|---|---|
黑 | 40 | 100 | 30 | 90 |
红 | 41 | 101 | 31 | 91 |
绿 | 42 | 102 | 32 | 92 |
黄 | 43 | 103 | 33 | 93 |
蓝 | 44 | 104 | 34 | 94 |
紫 | 45 | 105 | 35 | 95 |
靛蓝 | 46 | 106 | 36 | 96 |
白 | 47 | 107 | 37 | 97 |
3. lambda & “\033”(好用)
- 用lambda定义好控制字符串的效果,然后直接调用。代码如下
blue = lambda x: '\033[41;34m' + x + '\033[0m'
blue("Believe youself, you can be the best!!!") # 打印结果如下图