python 打印乘法表,演示调试模板的使用效果,表格对齐打印,彩色文本打印,打印分隔线

背景介绍

在python中,我们可以很方便的打印我们想要的字符串,例如以下代码

# -*- coding:UTF-8 -*-

for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j} * {i} = {i*j}", end="\t")
    print()

这段代码的打印效果如下:
使用print函数打印乘法表

引入模块

您可以通过以下命令安装 DebugInfo 模块

pip install DebugInfo

今天,给大家分享一个开源调试模块.py,这个模板封装并提供了非常方便的文本对齐打印功能,以上方乘法表为例,使用调试模板的代码如下:

# -*- coding:UTF-8 -*-

# 引入调试模块
from DebugInfo.DebugInfo import *

# 创建一个白板
白板: 调试模板 = 调试模板()

# 在白板上准备一个表格,实际上是初始化表格 buffer
白板.准备表格()

# 在白板中生成乘法表内容
白板.添加多行([[f'{被乘数}{乘数} = {被乘数 * 乘数}' for 被乘数 in range(1, 乘数 + 1)] for 乘数 in range(1, 10)])

# 在白板上打印一条分隔线
白板.分隔线.提示内容('使用打印模板打印乘法表').修饰方法(绿字).展示()

# 在白板上展示生成的乘法表内容, 参数 7 表示每列前方的最小空格数量
白板.展示表格(7)

以上代码的运行效果如下
使用打印模板打印乘法表的效果
事实上,我们通过调试模板还可以很方便的对表格进行翻转操作,例如对乘法表进行左右对调,如下

# 继承上文代码,注意在展示表格前,做了一个 左右翻转表格 的操作,从而实现了对乘法表的左右翻转效果
白板.左右颠倒表格().展示表格(7)

以上代码运行效果如下
乘法表的左右翻转打印效果
同样的操作方式,我们还可以对乘法表进行上下对调,如下

# 继承上文代码,注意在展示表格前,做了一个 上下翻转表格 的操作,从而实现了对乘法表的左右翻转效果
白板.上下颠倒表格().展示表格(7)

以上代码运行效果如下
乘法表的上下翻转打印效果

打印彩色文本

通过使用调试模板的颜色修饰方法, 可以很方便的在白板中打印彩色的文本,如下

# -*- coding:UTF-8 -*-

# 引入调试模块
from DebugInfo.DebugInfo import *

# 创建一个白板
白板: 调试模板 = 调试模板()

白板.消息(红字('这是一行红色的字'))
白板.消息(绿字('这是一行绿色的字'))
白板.消息(黄字('这是一行黄色的字'))

以上代码的运行效果如下:
打印彩色文本的效果
这个功能是非常有用的,例如我们可能通过颜色方便的展示一些检查结果,如下:

# -*- coding:UTF-8 -*-

# 引入调试模块
from DebugInfo.DebugInfo import *

# 创建一个白板
白板: 调试模板 = 调试模板()

温度 = 40

if 温度 > 35:
    白板.消息('温度检查结果:', 红字('高温'))
    白板.消息('提示: ', 黄字('多喝绿豆汤哦'))

白板.消息()
温度 = 30
if 温度 < 35:
    白板.消息('温度检查结果:', 绿字('舒适'))
    白板.消息('提示: ', 黄字('今天适合户外运动,多出去走走哦'))

以上代码的运行效果如下:
彩色文本使用效果之高温预警

打印分隔线

在有些时候,我们在python脚本编写的过程中,不免需要打印各种调试消息,这些消息多了之后就需要进行分类汇总,以方便阅读。打印一些分隔线,和一些提示信息就成了一个必要的需求。调试模板也可以很方便的输入分隔线。如下

# -*- coding:UTF-8 -*-

# 引入调试模块
from DebugInfo.DebugInfo import *

# 创建一个白板
白板: 调试模板 = 调试模板()

白板.分隔线.展示()  # 这是一个不加修饰的分隔线,默认长度是 50 个 - 符号

# 下面的分隔线上都有提示内容,并且有一定的装饰效果
白板.分隔线.提示内容('这条分隔线有提示内容').展示()
白板.分隔线.提示内容('这条分隔线有提示内容, 而且我比较长').总长度(60).展示()
白板.分隔线.提示内容('这条分隔线有提示内容, 而且我比较长,而且我是绿色的').总长度(60).修饰方法(绿字).展示()
白板.分隔线.提示内容('这条分隔线有提示内容, 而且我比较长,而且我是黑字红底色的').总长度(60).修饰方法(红底黑字).展示()
白板.分隔线.提示内容('这条分隔线有提示内容, 而且我文本在左边').总长度(60).修饰方法(绿字).文本对齐(对齐方式.左对齐).展示()
白板.分隔线.提示内容('这条分隔线有提示内容, 而且我文本在右边').总长度(60).修饰方法(绿字).文本对齐(对齐方式.右对齐).展示()
白板.分隔线.提示内容('这条分隔线有提示内容, 我的分隔线是 * 组成的').总长度(60).修饰方法(绿字).修饰符('*').展示()

以上代码打印了各种各样的分隔线,运行效果如下
调试模块打印分隔线的效果演示

函数传参

在编写程序中,经常会将一些固定的或者成套的步骤封装成一个一个的函数或者类,以提供代码的组织效率。但这样以来,代码在调试时的运行顺序经常不容易捕捉,这为调试带来了麻烦。调试模板可以做为函数方法的入参使用,再配合简单的缩进处理,即可方便的在打印格式上体现函数的运行层次,以下是一个演示。

# -*- coding:UTF-8 -*-

# 引入调试模块
from DebugInfo.DebugInfo import *


def 方法1(白板 : 调试模板 = 调试模板()) -> bool:
    白板.执行位置(方法1)

    白板.消息('我在 方法1 里执行任务')
    白板.调试消息('我在 方法1 里, 但我只有在调试时才会显示哦')
    return True


def 方法2(白板 : 调试模板 = 调试模板()) -> bool:
    白板.执行位置(方法2)

    白板.消息('我在 方法2 里执行任务')
    白板.调试消息('我在 方法2 里, 但我只有在调试时才会显示哦')

    # 调用 方法1 执行个子任务
    方法1(白板.副本.缩进())
    return True


if __name__ == '__main__':
    白板: 调试模板 = 调试模板()

    # 打开调试模式, 白板的调试模式会继承到副本中,除非在副本中明确关闭,例如 白板.副本.关闭调试()
    白板.打开调试()

    白板.分隔线.提示内容('下面调用 方法1 执行任务').修饰方法(红字).总长度(100).展示()
    方法1(白板.副本.缩进())

    白板.分隔线.提示内容('下面调用 方法2 执行任务').修饰方法(红字).总长度(100).展示()
    # 调用 方法2 执行任务
    方法2(白板.副本.缩进())

    白板.分隔线.提示内容('下面调用 方法1 执行任务,调试模式关闭状态执行').修饰方法(红字).总长度(100).展示()
    方法1(白板.副本.关闭调试().缩进())

    白板.分隔线.提示内容('下面调用 方法2 执行任务,调试模式关闭状态执行').修饰方法(红字).总长度(100).展示()
    方法2(白板.副本.关闭调试().缩进())

以上代码简单构造了两个方法,方法2 内部会嵌套调用 方法1,在主程序中分别以打开调试和关闭调试两种模式下调用方法1,和方法2;以上代码运行效果如下
调试模板做为入参的使用效果
我们可以看到,

  • 在调试模式下,调用方法1时,打印显示 方法1 开始执行,然后打印了方法1内部的消息。
  • 在调试模式下,调用方法2时,先打印了显示了 方法2 开始执行,然后打印了方法2内部的消息。然后缩进打印了 方法1 开始执行,然后打印了方法1内部的消息。

可以看到,方法1的打印消息和方法2的打印消息,层次是比较分明的。缩进层次表示了程序的运行顺序。

总结

以上就是 调试模板.py 提供的主要功能了。可以见得,其功能是丰富的,且使用方便的,再也不用为打印场景下的各种对不齐的现象而烦恼了,让我们更聚焦于功能逻辑的开发吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团圆吧

1 分钱,求鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值