作者 | 天元浪子 责编 | 张文
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
尽管 print 函数是初学者最先接触到的第一个 Python 标准函数,但很多人并没有真正了解它。我曾经在《用 print() 函数实现的三个特效》一文中展示了 print 函数的一些实用技巧,受到读者热捧。
今天,我再给大家介绍 print 函数的另一个技巧:打印彩色文字和图案,并在最后定义一个打印围棋局面的函数,可以打印出下图这样的效果。
毕竟是在文本模式下,print 函数支持的彩色比较少,只有 8 种,如下表所示。
print 支持以下几种显示模式:
0 - 默认
1 - 高亮
4 - 下划线
5 - 闪烁
7 - 反白
8 - 隐藏
22 - 去高亮
24 - 去下划线
25 - 去闪烁
27 - 去反白
28 - 去隐藏
使用 print 函数打印彩色文字或图案时,每一行以前缀“\033[”开始,其后紧跟显示模式、前景色和背景色,三者中间以分号分割,后接小写字母“m”。在显示内容之后,一般以后缀“\033[0m”结束。
上面的代码显示效果如下图所示。
不过,如果你是在 Windows 环境中运行的话,估计不会出现这个期望的结果。
我猜测这应该是 Python 的一个非常古怪且难以解决的 bug,从 Py2 时代就一直如此。解决方案也很奇葩,使用 os 模块的 system 函数运行一次空命令就 OK 了。代码如下:
好,讲完了预备知识,是时候打印一个彩色的围棋局面了。
我们约定围棋局面用一个二维的 NumPy 数组来表示。黑子、白子、和空,我们分别用 Unicode 字符集中的 0x25cf、0x25cb、和 0x253c 来表示,边角也使用各自的对应符号。这个符号,我们可以在 IDLE 中直观地显示。
接下来,应用上面这些知识点,就可以写出一个打印围棋局面的函数了。
领取专属 10元无门槛券
私享最新 技术干货