如何让running_bond为True时的砖图案行交替且间距一致?
修复错缝铺砖(running_bond)的排版问题
问题分析
你当前的代码在running_bond=True时,对奇数行的每一块砖都添加了前缀空格,导致砖块之间出现不必要的间隔。正确的逻辑应该是:奇数行仅在行开头添加一个空格,后续砖块连续拼接。
修正后的代码
def get_brick_pattern(max_rows=1, max_cols=1, running_bond=True): brick = "🧱" result = "" for row in range(max_rows): if running_bond: if row % 2 == 1: # 奇数行(索引从0开始计数) result += " " + brick * max_cols + "\n" else: # 偶数行 result += brick * max_cols + "\n" else: # 正方形无错缝图案 result += brick * max_cols + "\n" return result # 测试示例 print(get_brick_pattern(3, 6, True))
关键修改点
- 简化行生成逻辑:不再嵌套列循环,直接用
brick * max_cols生成整行连续砖块,避免逐列处理带来的重复空格问题。 - 精准控制开头空格:仅对奇数行(索引从0开始,所以判断
row % 2 == 1)在开头添加单个空格,后续砖块连续拼接,符合错缝排版要求。 - 优化参数默认值:移除原代码中
running_bond=True or False这种无效写法,直接设为True更合理。 - 精简冗余代码:将两种模式的重复行生成逻辑合并,减少代码冗余。
测试输出
运行测试代码后,输出将完全符合预期:
🧱🧱🧱🧱🧱🧱 🧱🧱🧱🧱🧱🧱 🧱🧱🧱🧱🧱🧱
内容的提问来源于stack exchange,提问作者DummyWComputer
相关产品推荐
相关产品推荐

