Python绘制美观数字表格的现有代码有无简化方法?
代码优化方案
以下简化后的代码运行效果和你原代码完全一致:
def draw_table(row, column): for n in range(1, row * column + 1): # 取模判断是否为当前行最后一个单元格,动态设置结尾字符 end_str = '\n' if n % column == 0 else '' # 用格式化自动对齐补空格,无需判断数字位数 print("[{:<4}]".format(f"{n}."), end=end_str) draw_table(6, 3)
如果想要更简洁的写法,也可以用迭代器按行生成:
def draw_table(row, col): num_iter = iter(range(1, row * col + 1)) for _ in range(row): print(''.join("[{:<4}]".format(f"{next(num_iter)}.") for _ in range(col)))
核心优化点
- 移除了冗余的数字位数判断:利用Python格式化字符串的左对齐能力,自动将
数字+点的内容补空格到固定4位长度,和你原代码的空格填充效果完全一致,省去了多分支判断的重复代码。 - 去掉了手动维护列计数器的逻辑:要么通过
n % column直接判断是否到行尾,要么直接用迭代器按行列拆分输出,无需额外维护计数变量。 - 合并了重复的打印逻辑:不用分别处理行内单元格和行尾单元格的打印逻辑,仅动态设置
print的end参数即可。
内容的提问来源于stack exchange,提问作者Avrum Ben Yishai
相关产品推荐
相关产品推荐

