字符田字格绘制

📅 发布时间:2026/10/20 5:38:15
字符田字格绘制
一、实验目的掌握 Python 的print()输出方法理解空格和换行对字符图形的影响。掌握字符串拼接与重复运算实现边框和格内空白的构造。理解嵌套循环的执行过程使用函数完成可调整大小的网格绘制。二、实验环境本次验证环境为 macOSPython 3.12.14。三、实验内容与原理使用表示边框交点使用-表示横线使用|表示竖线使用空格填充单元格内部。基本图形由两行、两列单元格组成形成“田”字结构扩展示例绘制四行、四列网格。函数参数rows、cols分别表示单元格的行数和列数width表示每个单元格内部的字符宽度height表示每个单元格内部的文本行数。这里的宽高均为字符单位不是像素或实际物理长度。横向边框的构造公式为( - * width) * cols 格内一行的构造公式为(| * width) * cols |外层循环控制单元格行数每轮先输出一条横向边框再由内层循环输出指定数量的格内文本行。循环结束后补上最后一条底边避免遗漏底部边框。四、实验步骤定义绘图函数并检查行数、列数、格宽和格高是否为正整数。根据格宽和列数构造横向边框与格内文本行。使用嵌套循环逐行输出图形最后输出底边。调用默认参数绘制两行两列的字符田字格。修改参数绘制四行四列网格检查函数能否复用。将同目录中的字符田字格.py保存后在终端运行python3 字符田字格.py五、主要代码以下为完整可运行代码代码中未添加注释。defdraw_grid(rows2,cols2,width5,height3):values(rows,cols,width,height)ifany(type(value)isnotintorvalue0forvalueinvalues):raiseValueError(行数、列数、格宽和格高必须为正整数)border(-*width)*colscontent(| *width)*cols|for_inrange(rows):print(border)for_inrange(height):print(content)print(border)if__name____main__:print(示例一2 × 2 字符田字格)draw_grid()print()print(示例二4 × 4 扩展网格)draw_grid(4,4,5,2)六、实验结果程序已实际运行成功正常退出。下图根据程序实际标准输出排版生成展示两组运行结果。图 1左侧为两行两列的田字格右侧为四行四列的扩展网格。基本田字格的实际输出如下示例一2 × 2 字符田字格 ---------- | | | | | | | | | ---------- | | | | | | | | | ----------七、结果分析默认参数为rows2、cols2、width5、height3。因此图形共有三条横向边框每个单元格内部有三行空白总文本行数为2 × (3 1) 1 9每行字符数为2 × (5 1) 1 13均不包含示例标题。扩展示例将参数设置为4, 4, 5, 2生成四行四列网格。图形总文本行数为4 × (2 1) 1 13每行字符数为4 × (5 1) 1 25。从实际输出可以看到边框完整交点和竖线对齐说明函数能够根据参数正确调整网格规模。绘制时需注意横向边框和格内文本行都要补上最右侧字符外层循环结束后要补上底边。由于终端字符通常高于其宽度字符数量相同不代表显示长度相同可通过调整width和height改善单元格的视觉比例。八、实验总结本实验利用字符串重复、字符串拼接和嵌套循环完成了字符田字格及扩展网格的绘制。将重复输出过程封装为函数后只需修改参数即可改变网格大小。实验说明规则字符图形可以分解为少量重复行再通过循环组合得到从而减少重复代码并提高可读性。