求助:实现可绘制任意指定参数网格的Python函数
解决Python任意规格网格绘制的问题
我来帮你搞定这个网格绘制的难题!你的现有代码只能生成固定3行单元格的网格,而且列方向的格式适配不够灵活,咱们来改造一下,让函数能完全支持任意行数、列数,甚至还能自定义单元格的大小。
先分析现有代码的局限
你的代码里有这些固定化的问题:
- 硬编码了3行
|...|单元格内容,无法调整单元格的高度 - 列分隔线的格式用了固定的
{:10}对齐,当列数变化时会出现格式错乱 - 网格的开头和结尾没有统一的
+符号,样式不够规范
改进后的通用网格绘制函数
下面是一个灵活度拉满的实现,支持自定义列数、行数和单元格大小:
def draw_grid(columns, rows, cell_size=3): # 生成水平分隔线:开头是+,每个列对应---+,最后自动闭合 horizontal_divider = "+" + ("-" * cell_size + "+") * columns # 生成单元格内容行:开头是|,每个列对应cell_size个空格+|,最后闭合 cell_content_line = "|" + (" " * cell_size + "|") * columns # 循环绘制每一行网格单元 for _ in range(rows): # 先打印当前行的顶部分隔线 print(horizontal_divider) # 每个单元格的高度是cell_size行,所以重复打印内容行 for _ in range(cell_size): print(cell_content_line) # 打印网格底部的最后一条分隔线 print(horizontal_divider)
怎么使用这个函数
基础用法:绘制2列2行的标准网格(单元格默认3字符宽高)
draw_grid(2, 2)输出效果:
+---+---+ | | | | | | | | | +---+---+ | | | | | | | | | +---+---+自定义单元格大小:绘制3列1行,每个单元格5字符宽高
draw_grid(3, 1, cell_size=5)输出效果:
+-----+-----+-----+ | | | | | | | | | | | | | | | | | | | | +-----+-----+-----+
改进点说明
- 动态生成分隔线:根据列数和单元格大小自动计算水平分隔线,不会出现格式错位
- 支持任意行数/列数:参数
columns控制列数,rows控制行数,完全灵活 - 自定义单元格尺寸:通过
cell_size参数可以调整单元格的宽高,适配不同需求 - 规范网格样式:网格的四个角都是
+符号,每列/每行的分隔都对齐整齐
内容的提问来源于stack exchange,提问作者Intuitive Skamod Anthony
相关产品推荐
相关产品推荐

