如何按固定宽度多行并排打印多个字符串
解决方案
问题分析
你的代码逻辑是依次输出第一个字符串的所有分块,再输出第二个、第三个,这和需求的「每块包含三个字符串对应分块,块间空行」完全不符。需要调整为按分块的索引配对输出,即同时处理三个字符串的第N个分块,组成一个输出块。
代码实现
首先确保你有正确的分块函数(如果没有可以用这个):
def chunkstring(s, length): # 将字符串按指定长度分割为分块列表 return [s[i:i+length] for i in range(0, len(s), length)]
然后修改主逻辑代码:
# 生成三个字符串的分块列表 chunks_a = chunkstring(str1, 60) chunks_b = chunkstring(str2, 60) chunks_c = chunkstring(str3, 60) # 遍历对应分块,按要求输出 total_blocks = len(chunks_a) for idx in range(total_blocks): # 写入当前块的三行内容 f.write(f"{chunks_a[idx]}\n") f.write(f"{chunks_b[idx]}\n") f.write(f"{chunks_c[idx]}\n") # 块与块之间空一行(最后一个块后不添加多余空行) if idx != total_blocks - 1: f.write("\n")
效果说明
这段代码会先输出三个字符串的前60字符分块,然后空一行,再输出接下来的60字符分块,以此类推,完全符合你给出的示例格式。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

