You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在终端正确打印自定义方框类输出?Python动态绘制符号方框问题

终端方框打印问题修复方案

问题原因

现有代码存在两个逻辑错误导致打印错位:

  • print()函数使用逗号分隔参数时,会自动在参数之间插入额外空格,破坏中间行的宽度
  • 中间行的填充空格长度没有和上下边框的总宽度做动态对齐,硬编码逻辑无法适配不同尺寸参数

修复后代码

class Box:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def draw_box(self):
        # 生成上下边框,移除末尾多余的空格
        border = ('+ ' * self.width).rstrip()
        border_length = len(border)
        print(border)
        # 动态计算中间行需要填充的空格长度
        fill_content = ' ' * (border_length - 2)
        for _ in range(self.height - 2):
            # 字符串拼接避免额外空格
            print(f'+{fill_content}+')
        print(border)


# 不同尺寸测试
if __name__ == '__main__':
    # 测试5*5的方框
    box_5_5 = Box(5, 5)
    box_5_5.draw_box()
    print('\n----分割线----\n')
    # 测试11*7的方框
    box_11_7 = Box(11,7)
    box_11_7.draw_box()

修复说明

  • 上下边框生成后用rstrip()去掉末尾多余的空格,避免边框末尾多出空白
  • 先计算上下边框的实际总长度,再动态推导中间行需要填充的空格数,不需要硬编码固定数值
  • 中间行直接用字符串拼接输出,避免逗号分隔参数带来的自动空格问题,保证所有行宽度完全一致

内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:54:01