我尝试逐个字符地打印出三个长字符串(长度相同),并且输出宽度固定为60,其呈现方式如下:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
---blank line---
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
.....
我简化了字符串,第一个字符串是包含"a"的任意长字符串,第二个字符串包含许多"b",以此类推。上面显示的行块可以尽可能多,在每个块中,第一行代表string1,第二行代表string2,以此类推。由于需要固定的输出宽度,打印将在下一个三行的块处继续(例如,如果长度〉60,则STR1将在第二个块的第一行处继续)。
我当前的代码如下所示:
for chunk in chunkstring(str1, 60):
f.write(chunk)
f.write('\n')
for chunk in chunkstring(str2, 60):
f.write(chunk)
f.write('\n')
for chunk in chunkstring(str3, 60):
f.write(chunk)
f.write('\n')
但是,结果不正确,它将首先打印出所有str1,然后是str2,最后是str3
aaaaaaaaaaaaa
aaaaaaaaaaaaa
aaaaaaaaaaaaa
aaaa
---blank line---
bbbbbbbbbbbbb
bbbbbbbbbbbbb
bbbbbb
---blank line---
ccccccccccccc
cccc
.....
对不起,如果没有解释清楚,请突出任何歧义,以便我可以编辑说明。
2条答案
按热度按时间k10s72fa1#
您需要将所有字符串分块,然后使用
zip
同时迭代这些块。在线试用
qvk1mo1f2#
你可以把Pranav的zip方法推得更远,也可以用zip来进行分块: