一、实验目的掌握 Python 的print()输出方法,理解空格和换行对字符图形的影响。掌握字符串拼接与重复运算,实现边框和格内空白的构造。理解嵌套循环的执行过程,使用函数完成可调整大小的网格绘制。二、实验环境本次验证环境为 macOS,Python 3.12.14。三、实验内容与原理使用+表示边框交点,使用-表示横线,使用|表示竖线,使用空格填充单元格内部。基本图形由两行、两列单元格组成,形成“田”字结构;扩展示例绘制四行、四列网格。函数参数rows、cols分别表示单元格的行数和列数,width表示每个单元格内部的字符宽度,height表示每个单元格内部的文本行数。这里的宽高均为字符单位,不是像素或实际物理长度。横向边框的构造公式为:("+" + "-" * width) * cols + "+"格内一行的构造公式为:("|" + " " * width) * cols + "|"外层循环控制单元格行数,每轮先输出一条横向边框,再由内层循环输出指定数量的格内文本行。循环结束后补上最后一条底边,避免遗漏底部边框。四、实验步骤定义绘图函数,并检查行数、列数、格宽和格高是否为正整数。根据格宽和列数构造横向边框与格内文本行。使用嵌套循环逐行输出图形,最后输出底边。调用默认参数,绘制两行两列的字符田字格。修改参数,绘制四行四列网格,检查函数能否复用。将同目录中的字符田字格.py保存后,在终端运行:python3 字符田字格.py五、主要代码以下为完整可运行代码,代码中未添加注释。defdraw_grid(rows=2,cols=2,width=5,height=3):values=(rows,cols,width,height)ifany(type(value)isnotintorvalue<=0forvalueinvalues):raiseValueError("行数、列数、格宽和格高必须为正整数")border=("+"+"-"*width)*cols+"+"content=("|"+" "*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 字符田字格 +-----+-----+ | | | | | | | | | +-----+-----+ | | | | | | | | | +-----+-----+七、结果分析默认参数为rows=2、cols=2、width=5、height=3。因此,图形共有三条横向边框,每个单元格内部有三行空白,总文本行数为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改善单元格的视觉比例。八、实验总结本实验利用字符串重复、字符串拼接和嵌套循环,完成了字符田字格及扩展网格的绘制。将重复输出过程封装为函数后,只需修改参数即可改变网格大小。实验说明,规则字符图形可以分解为少量重复行,再通过循环组合得到,从而减少重复代码并提高可读性。
一、实验目的掌握 Python 的print()输出方法,理解空格和换行对字符图形的影响。掌握字符串拼接与重复运算,实现边框和格内空白的构造。理解嵌套循环的执行过程,使用函数完成可调整大小的网格绘制。二、实验环境本次验证环境为 macOS,Python 3.12.14。三、实验内容与原理使用+表示边框交点,使用-表示横线,使用|表示竖线,使用空格填充单元格内部。基本图形由两行、两列单元格组成,形成“田”字结构;扩展示例绘制四行、四列网格。函数参数rows、cols分别表示单元格的行数和列数,width表示每个单元格内部的字符宽度,height表示每个单元格内部的文本行数。这里的宽高均为字符单位,不是像素或实际物理长度。横向边框的构造公式为:("+" + "-" * width) * cols + "+"格内一行的构造公式为:("|" + " " * width) * cols + "|"外层循环控制单元格行数,每轮先输出一条横向边框,再由内层循环输出指定数量的格内文本行。循环结束后补上最后一条底边,避免遗漏底部边框。四、实验步骤定义绘图函数,并检查行数、列数、格宽和格高是否为正整数。根据格宽和列数构造横向边框与格内文本行。使用嵌套循环逐行输出图形,最后输出底边。调用默认参数,绘制两行两列的字符田字格。修改参数,绘制四行四列网格,检查函数能否复用。将同目录中的字符田字格.py保存后,在终端运行:python3 字符田字格.py五、主要代码以下为完整可运行代码,代码中未添加注释。defdraw_grid(rows=2,cols=2,width=5,height=3):values=(rows,cols,width,height)ifany(type(value)isnotintorvalue<=0forvalueinvalues):raiseValueError("行数、列数、格宽和格高必须为正整数")border=("+"+"-"*width)*cols+"+"content=("|"+" "*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 字符田字格 +-----+-----+ | | | | | | | | | +-----+-----+ | | | | | | | | | +-----+-----+七、结果分析默认参数为rows=2、cols=2、width=5、height=3。因此,图形共有三条横向边框,每个单元格内部有三行空白,总文本行数为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改善单元格的视觉比例。八、实验总结本实验利用字符串重复、字符串拼接和嵌套循环,完成了字符田字格及扩展网格的绘制。将重复输出过程封装为函数后,只需修改参数即可改变网格大小。实验说明,规则字符图形可以分解为少量重复行,再通过循环组合得到,从而减少重复代码并提高可读性。