关注公众号,后台回复“python资料”,获取python资料大礼包。
大家好,欢迎收看思路实验室出品的Python入门教程,我是室长。
在我们学习编程的路上,陪伴我们最久的就是解释器小解解了。而且我们经常会用print函数来让解释器打印出来一些信息来看一看程序运行的情况,程序运行异常的信息也会打印出来。如果编写成了没有图形界面的程序,解释器打印出来的信息可能就是指引人们操作程序的关键提示了。所以一个富有表现力的打印结果不但可以让我们自己赏心悦目,而且还能给使用者带来更好的体验。
但眼下我们打印出来的内容就是这么普普通通,平平无奇。怎么能够让解释器打印出来的内容给人眼前一亮呢?我们可以使用rich模块。
rich模块,一听名字就这么阔气。不过这里的rich可不是有钱的意思,它代表的是“富文本”。有的同学可能问了,文本还有贫富之分吗?有呀!我们在记事本里写的和使用print方法打印出来的都可以算“穷文本”,除了文字之外一无所有,没有字体,没有字号,没有颜色,没有尺寸,总得来说就是素面朝天的文本,只不过因为“穷”字不好听,我们可以换个字,称它为“纯文本”。
但“富文本”一出场就带有阔少的光环,它可以设置字体、字号、颜色等等各种各样的元素。这就让文本的表现力提升了好几个等级。那么如何编辑富文本呢?看过室长HTML教程的同学很快就能想到了:用标记。关于rich模块里的标记怎么用后边室长会讲到。
当然rich模块比富文本还有更“富”一些,它还能够自动进行语法高亮,打印表格,打印markdown文本以及实现一些其他功能,非常的实用。话不多说,我们这就来安装一下rich模块亲手试一试。rich模块的安装名和导入名是一样的。在导入之前我们可以在终端使用python运行一下rich模块(模块也是代码也可以运行):
是不是看得眼花缭乱?
我们需要导入rich模块中的print方法,这个方法和系统的print方法是同名的,如果在代码中要用到这两种方法,导入时需要改一下名字。我们打印一个列表看看两种方法有什么不同:
也没什么不同嘛!如果你使用的是PyCharm,确实会得到这样的结果,但这是因为PyCharm用run运行代码出来的命令行界面默认是“素颜模式”,我们需要对它进行设置。点击这个小扳手:
然后将Execution下的 Emulate terminal in output console勾选上。
现在我们再来执行一次:
是不是不一样了?
虽然我们没有指定打印出来的字体颜色,但rich模块根据数据类型自动进行了指定。我们再来看看其他数据类型会展现成什么样子:
就连bool值、数据类型都有自己的专属颜色,这下终于不用对着一堆白花花的文字看到头疼了。
接下来就是我们之前所说的富文本的标记方法。与HTML不同,rich模块使用方括号进行标记:
但是rich模块的标记方式更为随意,可以一个标记里容纳多种样式:
此外rich模块还可以很方便地打印emoji表情,但这需要PyCharm或命令提示符的支持,室长没有在win10上测试成功,有了解的同学可以留言分享一下。打印的方法非常简单,就是emoji表情名两边加上两个冒号:
更加高级的是,如果我们的待打印字符串是一段代码,rich模块还可以实现语法高亮的功能:
不过貌似也没怎么好看,那是因为我们并没有告诉rich模块这是什么语言的代码。在rich的子模块syntax中,有一个Syntax类。我们将代码传入到Syntax类并设定代码语言和展示风格就可以做出符合语言的代码高亮展示:
这里室长设置了两个格式,一个是显示代码行数,一个是背景颜色为黑色。如果想改文字的配色规则的话需要设置theme参数,内容是各种配色的名称,比如我们现在PyCharm使用的darcula:
如果你觉得Python的异常提示信息总让你摸不到头脑,还要按照行数一行一行地去比对出问题的地方,甚至不知道出问题时变量的值是多少,那你不妨尝试一下rich的traceback功能。最简单的方法就是直接把traceback安装到代码中,这样代码出现的异常都会出现rich的traceback信息:
这里我们设置了show_locals参数为True,这样就可以显示异常发生时各个变量的值了:
可以看到rich的traceback功能展示出了出现异常所在代码行的前几行,方便我们进行查找定位,同时展现出了异常发生时各个变量的值,方便我们排查问题。
虽然我们介绍了这么多令人眼花缭乱的功能,但这仅仅是rich模块诸多功能中的一小部分。不过如果想要实现其他更多的功能,我们需要进行稍微复杂一些的操作,当然只是稍微复杂。由于篇幅所限,我们下期再聊。如果这篇文章对你有所帮助,希望能帮室长点个赞和在看,你的鼓励是室长进步的动力!
【室长原理课】系列在不正经地科普一些互联网小知识,没有太多高深的内容,把这个系列分享给你的朋友吧!
文章评论